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:

Code: Select all

{getCategoryLinkByID cid=5} 
bzw.

Code: Select all

{getCategoryLinkByID cid="5"}
(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

Code: Select all

//$cid='4';
ausklammere, dann bekomme ich wunderbar:

Code: Select all

categories/4-Seelsorge
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

Code: Select all

categories/0-unknown

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;
} ;