Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#13 2012-12-20 17:30:51

muffinmaker
Member
From: Berlin
Registered: 2012-11-12
Posts: 21

Re: [de-de] Artikel-Links anstelle von Sections

@ Markus: Das

<txp:article_custom category="auswahl" 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>

ist natürlich eleganter, wenn der aktive “Link” kein Link ist!

Trotzdem bleibt das Problem, dass die Liste auf der Startseite ganz verschwindet. Nur wenn ein Artikel angezeigt wird, erscheint die Liste mit der korrekten ID-abhängigen Formatierung. Ohne das if-Konstrukt ist die Liste auch auf der Startseite sichtbar.

Wenn ich das richtig verstehe, müssten doch auf der Startseite alle Artikel IDs an die else Anweisung durchgereicht werden, weil kein Artikel angezeigt wird und somit keine article_id vorhanden ist.
Oder ist genau das das Problem? Dass hier eine Variable abgefragt wird, die noch gar nicht gesetzt ist?

Vielen Dank nochmal für die zahlreichen Tipps!
Tobias

Last edited by muffinmaker (2012-12-20 18:05:35)

Offline

#14 2012-12-20 17:33:48

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>

Für solche Sachen bin ich noch zu klein ;)

Offline

#15 2012-12-20 18:10:58

uli
Moderator
From: Cologne
Registered: 2006-08-15
Posts: 4,304

Re: [de-de] Artikel-Links anstelle von Sections

merz1 wrote:

Uli, korrekter Link

Danke, war etwas in Eile und hatte nur die ID aus Firebug kopiert.


In bad weather I never leave home without wet_plugout, smd_where_used and adi_form_links

Offline

#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>

Screenshot

Auf der Startseite sieht das dann aber so aus:

<p class="kategorie">Auswahl</p>

<ul>      

</ul>

Screenshot

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,304

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,473

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 dann lis zustande? (immerhin erzeugt das tag ja bereits uls.)

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,473

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

#22 2012-12-24 19:21:48

merz1
Member
From: Hamburg
Registered: 2006-05-04
Posts: 994
Website

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

#23 2012-12-24 19:49:53

merz1
Member
From: Hamburg
Registered: 2006-05-04
Posts: 994
Website

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,473

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

Board footer

Powered by FluxBB