Kategorie-Name/Link zu Kategorie-ID ermitteln?

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Kategorie-Name/Link zu Kategorie-ID ermitteln?

Post 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
Ciao, Stephan
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Kategorie-Name/Link zu Kategorie-ID ermitteln?

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Post 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?
Ciao, Stephan
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Post 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
Ciao, Stephan
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
stm999999999
Regular
Posts: 1531
Joined: Tue Mar 07, 2006 11:25 pm
Location: Berlin, Germany
Contact:

Post 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;
} ;
Ciao, Stephan
Post Reply