Page 1 of 1
Kategorie-Name/Link zu Kategorie-ID ermitteln?
Posted: Fri Sep 08, 2006 4:56 pm
by stm999999999
Hallo,
ich habe eine gegebenen Kategorie-ID (für die statischen Seiten mittels der Neuerungen im staticpage-plugin). Nun bastele ich daraus folgenden Link:
<a href="{$serendipityBaseURL}categories/{$staticpage_rss_category_id}-x">ältere Artikel</a>
Funktioniert soweit auch. Ich würde aber gerne, das "-x" gegen die richtige Bezeichnung austauschen, kann ich irgendwie diesen Text (per smarty) ermitteln?
Ciao, Stephan
Re: Kategorie-Name/Link zu Kategorie-ID ermitteln?
Posted: Fri Sep 08, 2006 5:01 pm
by garvinhicking
Hi!
Dafür gibts keine smarty wrapper funktion. Du musst also mittels PHP oder eiger Smarty-Funktion serendipity_fetchCategories() ansprechen.
Viele Grüße,
Garvin
Posted: Fri Sep 08, 2006 6:03 pm
by stm999999999
hm,
Code: Select all
function &serendipity_fetchCategories($authorid = null, $name = null, $order = null, $artifact_mode = 'write')
nimmt doch aber gar keine ID als Input an?
Posted: Fri Sep 08, 2006 6:58 pm
by stm999999999
OK, ich habe eine andere Funktion gefunden, die das gewünschte macht:
serendipity_fetchCategoryInfo
Ich habe nun in meiner tpl:
bzw.
(später wird dann noch aus der Zahl eine gesetzte Variable)
Und in meiner config.inc.php
Code: Select all
$serendipity['smarty']->register_function('getCategoryLinkByID', 'smarty_getCategoryLinkByID');
function smarty_getCategoryLinkByID ($cid, &$smarty) {
//$cid='4';
$cat = serendipity_fetchCategoryInfo($cid);
$result=serendipity_getPermalink($cat,'category');
return $result;
} ;
Leider klappt es noch nicht zu 100%:
Wenn ich oben
ausklammere, dann bekomme ich wunderbar:
Wenn ich aber das $cid nehmen will, was eigentlich über den Funktionsaufruf übergeben worden sein sollte, so bekomme ich stets die Ausgabe der ersten Gruppe!
Wenn ich aber
Code: Select all
$cat = serendipity_fetchCategoryInfo($variable_gibt_es_nicht);
dann bekomme ich
Posted: Fri Sep 08, 2006 8:17 pm
by garvinhicking
Hi!
Diene Parameterübergabe ist einfach nicht richtig; anstell $cid kommt in der Funktion ein Array an.
Machmal print_r($cid) und Du müsstest ein Array sehen was als key "cid" und als value die Zahl hat.
Viele Grüße,
Garvin
Posted: Fri Sep 08, 2006 8:48 pm
by stm999999999
Liegt das an der Smarty-Geschichte?
Egal, für die Nachwelt - so klappt es nun:
Code: Select all
$serendipity['smarty']->register_function('getCategoryLinkByID', 'smarty_getCategoryLinkByID');
function smarty_getCategoryLinkByID ($data, &$smarty) {
$cat = serendipity_fetchCategoryInfo($data['cid']);
$result=serendipity_getPermalink($cat,'category');
return $result;
} ;