Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
#16 2012-12-21 18:51:17
- muffinmaker
- Member

- From: Berlin
- Registered: 2012-11-12
- Posts: 21
Re: [de-de] Artikel-Links anstelle von Sections
Heute habe ich mich nochmal mit den txp:if… Tags beschäftigt, aber ich verstehe nach wie vor nicht, warum die Artikelliste auf der Startseite nicht angezeigt wird. Im folgenden habe ich nochmal alle Informationen zusammengefasst und den Code 1:1 aus dem Textpattern Backend kopiert.
So stehts im Template:
<p class="kategorie">Auswahl</p>
<txp:article_custom category="auswahl" sort="custom_1 asc" wraptag="ul">
<txp:if_article_id>
<li class="aktiv"><txp:title /></li>
<txp:else />
<li><txp:permlink><txp:title /></txp:permlink></li>
</txp:if_article_id>
</txp:article_custom>
Wenn ein Artikel angezeigt wird, generiert Textpattern genau den erwarteten Quellcode:
<p class="kategorie">Auswahl</p>
<ul>
<li class="aktiv">Bundeskanzleramt</li>
<li><a rel="bookmark" href="http://localhost/machhaus.com/index.php?id=13">Hutfabrik</a></li>
<li><a rel="bookmark" href="http://localhost/machhaus.com/index.php?id=14">Marie Elisabeth Lüders Haus</a></li>
<li><a rel="bookmark" href="http://localhost/machhaus.com/index.php?id=15">Otto Bock Science Center</a></li>
<li><a rel="bookmark" href="http://localhost/machhaus.com/index.php?id=2">Bibliothek Luckenwalde</a></li>
<li><a rel="bookmark" href="http://localhost/machhaus.com/index.php?id=12">Mercedes Benz Bank</a></li>
</ul>
Auf der Startseite sieht das dann aber so aus:
<p class="kategorie">Auswahl</p>
<ul>
</ul>
Ich verstehe nicht, warum die Artikel auf der Startseite nicht an die else-Anweisung durchgereicht werden. Jemand noch eine Idee? Oder muss ich zur Analyse noch irgendwelche Infos beisteuern?
Offline
#17 2012-12-21 22:01:14
- uli
- Moderator

- From: Cologne
- Registered: 2006-08-15
- Posts: 4,316
Re: [de-de] Artikel-Links anstelle von Sections
Was passiert auf der Startseite, wenn du im article_custom tag limit="999" ergänzt, kommen dann lis zustande? (immerhin erzeugt das tag ja bereits uls.)
Eine andere Theorie: Du hast deiner Startseite auf der Sektionen-Seite ein anderes Page-Template zugeordnet als das hier gepostete.
In bad weather I never leave home without wet_plugout, smd_where_used and adi_form_links
Offline
#18 2012-12-22 01:11:02
- GugUser
- Member

- From: Quito (Ecuador)
- Registered: 2007-12-16
- Posts: 1,477
Re: [de-de] Artikel-Links anstelle von Sections
Es geht hier genau um das, für das du dich als zu klein eingestuft hast.
Ich schlage Folgendes vor:
Installiere das stm_article-order Plug-In, dann musst du die Reihenfolge der Artikel nicht per benutzerdefiniertem Feld bestimmen.
Dann ersetzt du den Teil <txp:article_custom category="auswahl" sort="custom_1 asc" wraptag="ul"> usw. mit nur dieser Zeile:
<txp:article_custom category="auswahl" sort="position asc" wraptag="ul" form="nav-artikelliste-manuell" />
Dann legst du einen Baustein mit z. B. dem Namen “nav-artikelliste-manuell” an. Dort kopierst du den hier angegebenen Schnippsel rein.
Für die Ausgabe der gezeigten Artikel musst du auch sort="position asc" angeben.
Im stm_article-order-Plug-In kannst du nun manuell die Reihenfolge der Artikel bestimmen. Ich habe das zwar noch nie mit Kategorie sondern immer mit Sektion gemacht, aber ich denke, es könnte trotzdem funktionieren. Ich verstehe übrigens nicht, warum du nach Kategorie filterst.
Offline
#19 2012-12-22 07:39:10
- muffinmaker
- Member

- From: Berlin
- Registered: 2012-11-12
- Posts: 21
Re: [de-de] Artikel-Links anstelle von Sections
uli wrote:
Was passiert auf der Startseite, wenn du im article_custom tag
limit="999"ergänzt, kommen dannlis zustande? (immerhin erzeugt das tag ja bereitsuls.)
Keine Änderung…
Eine andere Theorie: Du hast deiner Startseite auf der Sektionen-Seite ein anderes Page-Template zugeordnet als das hier gepostete.
Habe ich mir nochmal angeschaut, aber ich habe tatsächlich nur eine einzige Template Seite, die allen Sections zugeordnet ist. So
<txp:article_custom category="auswahl" sort="custom_1 asc" wraptag="ul" break="li">
<txp:permlink><txp:title /></txp:permlink>
</txp:article_custom>
funktionierts ja auch auf allen “Seiten”, nur wenn if-else ins Spiel kommt, geht auf der Startseite
http://localhost/machhaus.com/
die Liste verloren.
Auf den Seiten
http://localhost/machhaus.com/index.php?id=10
usw. funktioniert auch mit der if Abfrage alles wunderbar.
GugUser wrote:
Es geht hier genau um das, für das du dich als zu klein eingestuft hast.
OK, dann werde ich mir das noch mal Schritt für Schritt zu Gemüte führen und versuchen zu verstehen. Schließlich wächst man mit seinen Aufgaben.
Ich schlage Folgendes vor:
Installiere das stm_article-order Plug-In, dann musst du die Reihenfolge der Artikel nicht per benutzerdefiniertem Feld bestimmen.
Das werde ich, wenn alle Bemühungen, mit Textpattern Bordmitteln auszukommen fehl schlagen. Als Anfänger würde ich gerne erst die Grenzen des Systems erkunden, bevor ich mit Plug-Ins anfange.
Ich verstehe übrigens nicht, warum du nach Kategorie filterst.
Ich habe einfach eine Möglichkeit gesucht, Artikel zu filtern und da erschien mir die Kategorie ein guter Ansatz zu sein. Bringt das Nachteile mit sich, oder sollte man das aus bestimmten Gründen anders machen? Diese Seite ist mein erster Gehversuch in Textpattern, da habe ich einfach das erste genommen, was mir über den Weg gelaufen ist.
Was mich trotzdem, allein schon um einen offensichtlichen Denkfehler meinerseits auszuräumen, interessieren würde, ist, warum bei meinem (bzw. Markus’) Ansatz die Artikel auf der Startseite nicht an die else Anweisung durchgereicht werden. Ich bin zwar alles andere als ein Programmierer, habe aber schon in Basic, C, JavaScript und PHP erfolgreich if-else Anweisungen eingesetzt, sodass ich eigentlich dachte, das Prinzip verstanden zu haben.
Last edited by muffinmaker (2012-12-22 08:00:28)
Offline
#20 2012-12-22 11:15:37
- muffinmaker
- Member

- From: Berlin
- Registered: 2012-11-12
- Posts: 21
Re: [de-de] Artikel-Links anstelle von Sections
GugUser wrote:
Damit das auch in einer vom individuell gezeigten Artikel unabhängigen Artikelliste funktioniert, benutze ich folgenden Baustein:
<li<txp:if_article_id id='<txp:article limit="1" sort="posted desc"><txp:article_id /></txp:article>'> class="aktiv"><txp:title /><txp:else />><a href='<txp:permlink />'><txp:title /></a></txp:if_article_id></li>
Ich versuche gerade, die Zeile zu entschlüsseln und die Funktionsweise zu verstehen.
Kann es sein, dass die schließende Klammer in Zeile 13 da nicht hingehört? Oder fehlt irgendwo eine öffnende?
Edit:
OK, ich habs begriffen. Die vermeintlich überzählige schließende Klammer gehört zum <li> Tag wenn die else Anweisung zum tragen kommt. Cool!
Etwas verwirrend zu lesen, wenn die HTML-Tags und die Textpattern-Tags die selbe Syntax haben. Muss man sich erstmal klar machen, welche Klammer zu wem gehört.
Vielen vielen Dank für den Baustein. So funktionierts auch auf der Startseite. Ich hoffe, das waren jetzt schon die höheren Textpattern-Weihen. Da wäre ich im Leben nicht drauf gekommen.
Last edited by muffinmaker (2012-12-22 12:02:42)
Offline
#21 2012-12-22 12:15:12
- GugUser
- Member

- From: Quito (Ecuador)
- Registered: 2007-12-16
- Posts: 1,477
Re: [de-de] Artikel-Links anstelle von Sections
muffinmaker schrieb:
Was mich trotzdem (…) interessieren würde, ist, warum bei meinem (bzw. Markus’) Ansatz die Artikel auf der Startseite nicht an die else Anweisung durchgereicht werden.
Hier steht: “The tag will execute the contained statement if the article id associated with a particular article matches the id attribute.”
Offline
Re: [de-de] Artikel-Links anstelle von Sections
Leute, immer ruhig mit den komplexen TXP-Code-Ponies und der verwendung von plug-ins :)
Für einen Anfänger sollte der komplexere TXP-Code erst mal ein wenig außen vor bleiben.
Für die Anzeige auf Listenseiten (z.B. Homepage also section=“default”) schlage ich die klassische unkomplexe Lösung mit entw. if_individual_article oder if_article_list vor (beide tags gehen wg. txp:else).
Also zurück auf Anfang … zur Erinnerung … funktioniert im Einzelartikel:
<txp:article_custom category='<txp:category1 />' wraptag="ul">
<txp:if_article_id>
<li class="active"><txp:title /></li>
<txp:hide>Wahlweise mit oder ohne txp:permlink</txp:hide>
<txp:else />
<li><txp:permlink><txp:title /></txp:permlink></li>
</txp:if_article_id>
</txp:article_custom>
Richtig erkannt: Ohne id-Attribut wird in Listen nichts angegeben: The id attribute must be used in an article list context (when producing a page that displays more than one article) or the tag will do nothing.
Wir bauen klassisch eine if/else-Unterscheidung ‘bin ich Liste oder bin ich Einzelartikel’:
<txp:if_individual_article>
<txp:hide>Hier drunter funktionierenden Code für Einzelartikel einsetzen</txp:hide>
<txp:else />
<txp:hide>Hier drunter funktionierenden Code für Artikelliste einsetzen</txp:hide>
</txp:if_individual_article>
Den funktionierenden Code für die Liste (mit Sortierung und fest verdrahteter Kategorie) hast Du ja bereits gepostet:
<txp:article_custom category="auswahl" sort="custom_1 asc" wraptag="ul" break="li">
<txp:permlink><txp:title /></txp:permlink>
</txp:article_custom>
Jetzt nur noch zusammensetzen und der Code funktioniert auf der Homepage, in Artikellisten und im Einzelartikel.
PS: Zurück kommend auf meine Kritik an den ‘überflüssigen’ Sektionen: <txp:article /> ist performanter als article_custom und Kontext sensitiv.
The tag is context-sensitive, which means it will grab articles from the currently viewed section/category/author, etc.
When used on the front page, article’s context will include articles from all Sections set to display “On front page”.
Weitere Vereinfachung = schnellere Seite. Also zurück an den Anfang, weg mit identisch verwendeten Sektionen und löse das ‘einfache’ Ursprungsproblem mit <txp:article /> (Du willst doch nur Links auf Artikel. S. ‘Trick’ für die Kategorieeinschränkung). Du wirst Dich wundern, dass Du im Optimalfall mit einer guten navigation-form und einem einzigen <txp:article form="navigation" /> auskommst.
Undokumentierter Trick – ungetestet!: customfieldname=“value” derzeit kann man in TXP jedes beliebige Artikelfeld als customfieldname verwenden. category1="auswahl" sollte funktionieren.
Oder doch die Formen etwas unterschieden:
form=“form name” Use specified form. Default: default.
listform=“form name” Use specified form when page is displaying an article list.
searchform=“form name” The form to be used for your customized search results output. Default: search_results.
Last edited by merz1 (2012-12-24 20:04:56)
Get all online mentions of Textpattern via OPML subscription: TXP Info Sources: Textpattern RSS feeds as dynamic OPML
Offline
Re: [de-de] Artikel-Links anstelle von Sections
GugUser wrote:
Damit das auch in einer vom individuell gezeigten Artikel unabhängigen Artikelliste funktioniert, benutze ich folgenden Baustein:
<li
<txp:if_article_id
id='<txp:article limit="1" sort="posted desc">
<txp:article_id />
</txp:article>'
>
class="aktiv"><txp:hide>Ende li</txp:hide>
<txp:title />
<txp:else />
><txp:hide>Ende li ohne class="aktiv"</txp:hide>
<a href='<txp:permlink />'><txp:title /></a>
</txp:if_article_id>
</li>
Die Angabe im Attribut “sort” muss in allen damit verbundenen Listen dieselbe sein.
Also die Lösung ist valide, aber ich würde die Abfrage auf den Einzelartikel schon aus Performancegründen nie so machen. Wir reden hier nur über das Setzen von 1x class=“aktiv” im Einzelartikelkontext:)
Get all online mentions of Textpattern via OPML subscription: TXP Info Sources: Textpattern RSS feeds as dynamic OPML
Offline
#24 2012-12-24 20:12:37
- GugUser
- Member

- From: Quito (Ecuador)
- Registered: 2007-12-16
- Posts: 1,477
Re: [de-de] Artikel-Links anstelle von Sections
Entschuldigung, ich wollte niemandem auf die Füsse treten, und bin “immer ruhig”. Ich verstehe den Gründe für solche Kritik nicht ganz.
Offline
Re: [de-de] Artikel-Links anstelle von Sections
Entschuldigung meinerseits. Wollte nicht, dass Du dich kritisiert fühlst.
Get all online mentions of Textpattern via OPML subscription: TXP Info Sources: Textpattern RSS feeds as dynamic OPML
Offline
#26 2012-12-24 22:13:42
- GugUser
- Member

- From: Quito (Ecuador)
- Registered: 2007-12-16
- Posts: 1,477
Re: [de-de] Artikel-Links anstelle von Sections
Da wir beide “immer ruhig” sind ;-), schon gut: Welches ist die funktionierende Alternative zu meinem Beispiel?
Offline
Re: [de-de] Artikel-Links anstelle von Sections
- Der tag-parser von TXP ist seit 4.0.7 darauf optimiert if/else-Sprünge sehr performant durchzuführen. S.a. den Artikel von 2008, Absatz ‘EvalElse parser’: Tag parser – part 2: speed
- Daraus folgt für die Code-Architektur, dass (z.B. verschachtelter tag-in-tag) TXP-Code immer nur dann zum Einsatz kommen muss/sollte, wenn eine Funktion auch wirklich benötigt wird.
- Im Umkehrschluss bringt es immer nur (Performance-) Nachteile, wenn man ein Problem generisch löst. D.h. eine Lösung für Alles kondensiert, die immer ausgeführt wird.
Konkret ist alleine die Unterscheidung ‘Liste oder nicht’ ein Gewinn, weil man CPU spart und bei der Codepflege sowieso in dieser Richtung arbeitet. Da nur im Einzelartikelfall in der Navigations-Artikelliste class="aktiv" Sinn macht, kann man sich die immer ausgeführte generische Lösung für den Einzelartikelfall sparen.
Wichtig für Anfänger ist immer noch (2005) textpattern.org/tips/337/article-vs-articlecustom.
Weitere if_ Fälle lassen sich (nach erster Unterscheidung) bequem nachliefern, falls gefordert.
Last edited by merz1 (2012-12-25 13:24:03)
Get all online mentions of Textpattern via OPML subscription: TXP Info Sources: Textpattern RSS feeds as dynamic OPML
Offline
#28 2012-12-25 13:38:08
- GugUser
- Member

- From: Quito (Ecuador)
- Registered: 2007-12-16
- Posts: 1,477
Re: [de-de] Artikel-Links anstelle von Sections
Mit all dem bin ich einverstanden. Nur, welches ist die konkret funktionierende, bessere Lösung für die spezifische Aufgabe?
Offline
Re: [de-de] Artikel-Links anstelle von Sections
Alle spezifischen Probleme des Originalposters gelöst (Check).
Get all online mentions of Textpattern via OPML subscription: TXP Info Sources: Textpattern RSS feeds as dynamic OPML
Offline
#30 2012-12-26 12:33:37
- GugUser
- Member

- From: Quito (Ecuador)
- Registered: 2007-12-16
- Posts: 1,477
Re: [de-de] Artikel-Links anstelle von Sections
Hallo Markus
Du erläuterst weiter oben sehr ausführlich, warum die von mir genannte Lösung nicht angewendet werden sollte. Es würde mich immer noch interessieren, welches also eine funktionierende Alternativlösung wäre.
Auf welche Weise muffinmaker die Probleme auf seiner Website löste, ist nicht dokumentiert, sein letzter Beitrag enthält aber dies:
Vielen vielen Dank für den Baustein. So funktionierts auch auf der Startseite.
Ich habe nichts dagegen, deiner Argumentation zu folgen, nur kenne ich keine andere Lösung, als den von mir angegebenen und seit längerem benutzten Schnippsel.
Offline