MyXoops Forum

Re: Gruppen-IDs auslesen und auswerten mit Smarty [Script-Workshop] - myXOOPS German Support

frankblack

"myXOOPs"-Profi
Gepostet am:05.10.2007 14:43
frankblack
frankblack Offline (Show more)
"myXOOPs"-Profi
Posts: 747
Since: 19.04.2006
#3

Re: Gruppen-IDs auslesen und auswerten mit Smarty

Viele Wege führen zum Ziel. Ich habe mich nur gefragt, warum es alle möglichen smarty-Variablen gibt, aber keine für die Gruppenzugehörigkeit.

Die smarty-Array-Funktion finde ich auch ganz schnuckelig. Ich habe sie mal mit angehängt.

Datei anhängen:


Link nur für registrierte Benutzer
... is gone with the wind ...

alfred

Administrator
Gepostet am:05.10.2007 14:05
alfred
alfred Offline (Show more)
Administrator
Posts: 7619
Since: 06.12.2004
#2

Re: Gruppen-IDs auslesen und auswerten mit Smarty

gute Idee, ich hab mir dazu aber immer einen kürzeren Weg gewählt
in das jeweilige template :

<{php}>
global 
$xoopsuser;
if (
in_array("1",($xoopsUser)?$xoopsUser->getGroups():array(XOOPS_GROUP_ANONYMOUS))) {
<{/
php]>
.. 
hier wenn der User in der gruppe ist

<{php}> } else { <{/php}>
.. 
hier für den Rest ...

<{
php}> } <{/php}>


Vorteil: es braucht nix am Core geändert zu werden

Alfred

Advertisement

Gepostet am:0
Advertisement (Show more)
Posts: 0
Since: 0


Hier könnten Sie Ihre Anzeige aufgeben!
Bitte kontaktieren Sie uns, um mehr darüber zu erfahren.

frankblack

"myXOOPs"-Profi
Gepostet am:05.10.2007 11:40
frankblack
frankblack Offline (Show more)
"myXOOPs"-Profi
Posts: 747
Since: 19.04.2006
#1

Gruppen-IDs auslesen und auswerten mit Smarty

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.
... is gone with the wind ...
Diesen Thread durchsuchen:  1 Anonyme Benutzer

Aktuell aus dem Forum

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