Im Folgenden ist beschrieben wie man Smarty für dein Einsatz mit der Menalto Gallery2 erweitert. Voraussetzungen sind Joomla!, Gallery2 und das zugehörige Joomla!-Plugin zur Integration der Galerie ins CMS.
Man lege eine Datei function.link_user_album.php an. Die Datei und die Funktion müssen so heißen, denn das zugehörige Tag soll {link_user_album} heißen.
<?php
/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/
/**
* Smarty {link_user_album} function plugin
*
* Type: function<br>
* Name: link_user_album<br>
* Purpose: link item owners album (assuming that one user can only have one album)
* @param array
* @param Smarty
* @return string
*/
Soweit der Anfang der Datei. Nun fügen wir unsere Smarty-Funktion ein:
function smarty_function_link_user_album($params, &$smarty)
{
global $database; //verwenden des joomla-$database-objekts
$gid=$params['gid']; //im tag übergebene owner-id eines bildes in $gid speichern
$query = “SELECT g_id FROM g2_Item WHERE g_ownerID=’$gid’ AND g_canContainChildren=1″; //album-id des besitzers finden
$database->setQuery( $query );
$rows = $database->loadObjectList();
foreach ($rows as $row) {
if($row->g_id!=7){//ausschließen, dass das root-album angezeigt wird
$ret=”<a href=\”http://www.domain.com/index.php?option=com_gallery2&Itemid=4&g2_itemId=$row->g_id\”>Nutzeralbum anschauen</a>”; //link generieren
}
}
return($ret);//
}
Fertig, das Dateiende nicht vergessen:
?>
Die Datei im Gallery2-Smarty-Verzeichnis ablegen:
…/gallery2/lib/smarty/plugins/
So kann das neue Smarty-Tag verwendet werden (beispielsweise in der photo.tpl des verwendeten themes, um einen Link auf das Photoalbum des Besitzers eines bestimmten Photos anzuzeigen):
{link_user_album gid=`$theme.item.owner.id`}
Hierbei wird mit dem Parameter gid der Besitzer des aktuell angezeigten Bildes übergeben. Unsere Smartyfunktion generiert daraus den Link aufs Nutzeralbum.
Letzte Kommentare