Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
[de-de] Verwandte Artikel & Kategorieliste
Hallo allerseits!
Ich habe zwei Fragen und hoffe hier Antwort zu finden:
- Verwandte Artikel: Gibt es eine Möglichkeit, wenn es keine verwandten Artikel mit
<txp:related_articles />
anzuzeigen gibt, einen alternativen Text anzuzeigen? - Kategorieliste: Ich möchte bei einem Artikel anzeigen, welche Kategorien ihm zugewiesen sind (z. B. “gespeichert unter Textpattern, Plugins”). Ich kann zwar die Kat1 und Kat2 anzeigen lassen (“gespeichert unter
<txp:category1 />
,<txp:category2 />
), aber wenn ich nur eine Kategorie zugewiesen habe, weiß ich nicht, wie ich das Komma wegkriege.
Irgendwelche Ideen?
Nils
Last edited by Skubidu (2005-09-07 18:00:28)
Offline
#2 2005-09-07 20:40:10
- alexandra
- Member
- From: Cologne, Germany
- Registered: 2004-04-02
- Posts: 1,370
Re: [de-de] Verwandte Artikel & Kategorieliste
zu 1. ich glaube da mußt du zum PHP Buch greifen :(
Offline
#3 2005-09-08 00:31:29
- rene
- Member
- From: Switzerland
- Registered: 2004-03-27
- Posts: 67
Re: [de-de] Verwandte Artikel & Kategorieliste
Solange es nicht zu allen Tags Conditionals mit Konstrukten wie <txp:if_category1 />
gibt, bleibt wohl nur was dir von höhergestellter Seite bereits geraten wurde. ;)
Zu 2: Ich habe mir das mal näher angeschaut, da das Problem früher oder später auch mal bei mir auftauchen wird. Du kannst in /publish/taghandlers.php die Funktion function category1($atts)
(Zeile 965) durch folgenden Code ersetzen:
<code>
function category1($atts)
{
global $thisarticle;
extract(lAtts(array(
‘link’ => 0,
‘title’ => 0,
),$atts));
$separator = ‘’;
if ($thisarticle[‘category2’]) $separator = “, “;
if ($thisarticle[‘category1’]) {
$cat_title = ($title ? fetch_category_title($thisarticle[‘category1’]) : $thisarticle[‘category1’]);
if (!empty($link))
return ‘<a href=”’.pagelinkurl(array(‘c’=>$thisarticle[‘category1’])).’”>’.
$cat_title.’</a>’.$separator;
return $cat_title . $separator;
}
}
</code>
Damit erreichst du, dass das Komma mit category1 übergeben wird, deshalb musst du es natürlich in deinem Baustein zwischen den beiden category-tags entfernen.
Mit der Zeile if ($thisarticle['category2']) $separator = ", ";
wird sichergestellt, dass das Komma nur beim vorhandensein einer zweiten Kategorie eingefügt wird. Allenfalls könntest du dort auch einen anderen Separator definieren.
Nebst dem Nachteil, dass man bei jedem Upgrade ständig an diesen Hack denken muss, könnte das hart codierte Komma Schwierigkeiten geben, falls man an anderer Stelle im selben Projekt die Kategorien untereinander ausgeben will – das muss man bei dieser Methode im Auge behalten.
Edit: Shit! Was ist eigentlich der Vorteil von einem Forum mit Textile, wenn der Preis dafür ist, dass man Code nicht anständig posten kann? :-(
Last edited by rene (2005-09-08 01:06:16)
Offline
Re: [de-de] Verwandte Artikel & Kategorieliste
Okay, vielen Dank für die Funktion.
Letztendlich könnte ich mir daraus doch ein Plugin schreiben, dass mir sogar automatisch die 2. Kategorie hinten dran hängt, wenn sie vorhanden ist – dann umgehe ich auch das Problem des Upgrades.
Ich lasse mir das nochmal durch den Kopf gehen :)
Was die related_articles angeht: Es wäre schön, wenn TXP eine Art <txp:if_empty>
-Konditional kennenwürde… Aber auch das klingt nach einem Plugin. Alex, leihst Du mir Dein PHP-Buch? seufz
Nils
Last edited by Skubidu (2005-09-08 07:22:49)
Offline
#5 2005-09-08 09:03:26
- alexandra
- Member
- From: Cologne, Germany
- Registered: 2004-04-02
- Posts: 1,370
Re: [de-de] Verwandte Artikel & Kategorieliste
> Skubidu wrote:
Letztendlich könnte ich mir daraus doch ein Plugin schreiben, dass mir sogar automatisch die 2. Kategorie hinten dran hängt, wenn sie vorhanden ist – dann umgehe ich auch das Problem des Upgrades.
Das verstehe ich jetzt nicht ganz, denn wenn du txp:category2 verwendest, wird dir doch die 2. Kategorie automtisch angehängt, sofern verhanden. In ein Form kannst du dann auch das Trennzeichen unterbringen:
<code><txp:if_article_category number=“1”>/<txp:category1 link=“y” title=“y” /></txp:if_article_category>
<txp:if_article_category number=“2”>/<txp:category2 link=“y” title=“y” />:: </txp:if_article_category></code>
(Trennzeichen ist hier -> :: /Die Lösung habe ich nicht selbst ausprobier, müßte aber funktionieren, oder?)
Damit würde automatisch, wenn eine 2. Kategorie existiert diese mit dem Trennzeichen :: angehängt.
Alex, leihst Du mir Dein PHP-Buch? seufz
Ehrlichgesagt Nils, ich schenke es dir sogar :) ich bin fürs Programmieren nicht geschaffen, das regt mich nur auf. Und ein Java2 Buch gibt es noch obendrauf.
PS warum werden die blockquotes eigentlich so komisch dargestellt? Das sieht aus, als wenn es ein Fehler im code wäre und nicht wie ein bq.
Last edited by alexandra (2005-09-08 09:07:40)
Offline
Re: [de-de] Verwandte Artikel & Kategorieliste
<code><txp:if_article_category number=“1”>/<txp:category1 link=“y” title=“y” /></txp:if_article_category>
<txp:if_article_category number=“2”>/<txp:category2 link=“y” title=“y” />:: </txp:if_article_category></code>
Hey, sehr schön. Das ist die Lösung nach der ich gesucht habe. War mir nicht bewusst, if_article_category ein number-Attribut besitzt. Vielen Dank!
Offline
#7 2005-09-08 10:58:51
- rene
- Member
- From: Switzerland
- Registered: 2004-03-27
- Posts: 67
Re: [de-de] Verwandte Artikel & Kategorieliste
Wow – schlaues Mädel – das habe ich auch nicht gewusst, dass das geht … :)
Offline