MyXoops Forum

Forum - myXOOPS German Support

0 + 5 = ?  
Geben Sie das Ergebnis der Berechnung ein
Sie haben max. 10 Versuche.
 
* = Erforderlich

Gruppen-IDs auslesen und auswerten mit Smarty

Betreff: Gruppen-IDs auslesen und auswerten mit Smarty
von frankblack am 05.10.2007 11:40:58

Möglicherweise gibt es auch einen eleganteren Weg?

1. class/theme.php editieren und nach Zeile 199 nach folgendem Code das hier einfügen:
'xoops_getgroups' => $xoopsUser->getGroups(),


2. Im Template sieht es dann so aus:
<{if array_intersect('1'$xoops_getgroups)}>falls der User in Gruppe 1 istdann mache irgendetwas<{/if}>


Zusatz: Ist natürlich blöd, wenn man ein Array braucht und meines Wissens gibt es im Template keine Möglichkeit auf die Schnelle ein Array zu erzeugen. Man müsste dies in der PHP-Datei machen und mit einem assign das Array an das Template übergeben. Google sei Dank, habe ich aber eine Funktion gefunden, mit der man im Template Arrays erzeugen kann.

1. Folgenden Code als Datei function.assign_array.php in class/smarty abspeichern:
<?php

/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Type:     function
 * Name:     assign_array
 * Version:  1.0
 * Author:   Jens Lehmann <jenslehmann@goldmail.de>
 * Credits:  Monte Ohrt <monte@ohrt.com>
 * Purpose:  assign an array to a template variable
 * Input:    var       =  name of the array
 *           values    =  list of values (seperated by delimiter)
 *           delimiter =  value delimiter, default is ","
 *
 * Examples: {assign_array var="foo" values="bar1,bar2"}
 *           {assign_array var="foo" values="bar1;bar2;bar3" delimiter=";"}
 * -------------------------------------------------------------
 */
function smarty_function_assign_array($params, &$smarty)
{
    
extract($params);

  if(empty(
$delimiter)) {
    
$delimiter ',';
  }

    if (empty(
$var)) {
        
$smarty->trigger_error("assign_array: missing 'var' parameter");
        return;
    }

    if (!
in_array('values'array_keys($params))) {
        
$smarty->trigger_error("assign_array: missing 'values' parameter");
        return;
    }

    
$smarty->assign($varexplode($delimiter,$values) );
}

/* vim: set expandtab: */

?>


2. Im Template sieht es jetzt so aus:
<{assign_array var="gruppen" values="1,2"}><{if array_intersect($gruppen$xoops_getgroups)}>falls eine Übereinstimmung mit Arrays gefunden wirddann mache irgendetwas<{/if}>


Anscheinend funktionieren auch andere Array-Funktionen wie in_array etc.pp.

Einfach mal ausprobieren.

Aktuell aus dem Forum

Forum Thema Antworten Views Letzter Beitrag
Modulentwicklung New Xoops Xcreate Module 0 5324 26.11.2025 15:22
efkan Gehe zum letzten Beitrag
Modulentwicklung XOOPS Custom Field Module 1 1813 24.11.2025 11:21
Goffy Gehe zum letzten Beitrag