Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#1 2009-09-25 15:07:13

GugUser
Member
From: Quito (Ecuador)
Registered: 2007-12-16
Posts: 1,477

[de-de] [gelöst] if_category und if_article_category zusammenfassen

2. Nachtrag: Zu dieser Problemstellung gibt es unterdessen eine elegantere Lösung

1. Nachtrag: Unter #7 wird die Frage neu beschrieben, weil sie so wie hier am Anfang offenbar nicht verständlich formuliert war.

In einem Baustein habe ich eine Serie von Bedingungen, wie dieser Ausschnitt zeigt:

<txp:if_category name="energia-solar">La energía solar es una energía limpia que no contamina el medio ambiente
<txp:else /><txp:if_category name="energia-eolica">Sistemas eólicos para la generación de energía eléctrica de bajo costo
<txp:else />Tecnologías limpias, energías renovables y sin contaminar, energías sostenibles
</txp:if_category>
</txp:if_category>

Nun möchte ich dieselben Bedingungen für <txp:if_article_category> festlegen. Muss ich die ganze Liste (welche im wirklichen, sich in Perfektionierung befindenden Webauftritt länger ist) neu schreiben, oder gibt es eine Möglichkeit, das zu kombinieren? Weil, die bei erfüllter Bedingung ausgegebenen Sätze wären dieselben.

Und – macht eigentlich ein solche Anhäufung von Bedingungen die Ausgabe der Website spürbar langsamer?

Danke schon jetzt für eventuelle Antworten!

Last edited by GugUser (2009-10-03 03:32:22)

Offline

#2 2009-09-25 22:02:49

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

Re: [de-de] [gelöst] if_category und if_article_category zusammenfassen

So als Schnellschuss:

Schreib alles mit if_article_category, umgib aber innerhalb dieser tags dann alle Vorkommen von _article mit <txp:if_individual_article>-tags. Könnte das hinkommen?

Last edited by uli (2009-09-25 22:03:48)


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

Offline

#3 2009-09-26 00:15:45

GugUser
Member
From: Quito (Ecuador)
Registered: 2007-12-16
Posts: 1,477

Re: [de-de] [gelöst] if_category und if_article_category zusammenfassen

@ uli

Ich versteh nicht, wie du das meinst. Eventuell ist auch meine Beschreibung nicht genug klar. Ich habe zwei solcher Bausteine. Der eine dient zur Ausgabe in <title> (in head), mit einem zusätzlichen Block, welcher noch anderes anhängt, und gleichzeitig für <h1>. Der zweite Block, mit denselben Bedingungen, gibt etwas längere Sätze für <meta name="description" content="" /> aus.

Das funktioniert so wie gewollt, solange Kategorieseiten sichtbar sind (oder anders gesagt Artikelauflistungen). Wird der individuelle Artikel aufgerufen, wird allerdings die Angabe nach dem letzten <txp:else /> ausgegeben. Das ist insofern nachvollziehbar und beruht auf einem Denkfehler meinerseits.

Ich möchte nun die Inhalte der beiden Bausteine umschreiben, denke aber noch darüber nach, wie ich bei erfüllter Kategorie-Bedingung in der Artikelauflistung wie beim Einzelartikel die entsprechenden Texte ausgeben lassen kann, ohne diese je zwei Mal innerhalb der if-Ketten schreiben zu müssen (was spätere Änderungen umfangreicher machen würde).

Erhellt diese neue Erklärung etwas?

Offline

#4 2009-09-26 00:49:42

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

Re: [de-de] [gelöst] if_category und if_article_category zusammenfassen

Ich versteh nicht, wie du das meinst.

Ja, ich glaube ich war etwas sehr sparsam mit Ausführungen.

Nach deinem ersten Post hatte ich dich so verstanden, dass die Inhalte zweier Bausteine im Grunde identisch sind und du zukünftig nur einen pflegen möchtest. Mit der einen Ausnahme, dass du sie einmal mit if_category (wie in deinem Beispiel), im zweiten Fall dann mit if_article_category umschließen resp. durchsortieren lassen willst.

Mein Vorschlag, das mit einem einzigen Baustein hinzukriegen, sähe anhand eines Beispiels (nur des allerersten tags oben) so aus:

  1. Dein <txp:if_category name="energia-solar"> wird zu
  2. <txp:if•_article•_category name="energia-solar">. An den Punkten füge ich jetzt jeweils den if_individual-tag ein:
  3. <txp:if<txp:if_individual_article>_article</txp:if_individual_article>_category name="energia-solar">.

[edit]Nach diesem Schema gehst du dann mit allen deinen if_category-tags aus dem Baustein vor, im Grunde also per “Suchen/Ersetzen”.[/edit]

Das ganze ist ein bisschen verwegen und auch nicht getestet, wäre aber ziemlich rasch ausprobiert.

Falls es völlig an der Sache vorbeigeht, brauchte ich vielleicht genauere Info, ein kurzes Beispiel etc., denn leider hat mir dein zweiter Post die Tür zum Verständnis eher wieder verschlossen.

Last edited by uli (2009-09-26 00:55:54)


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

Offline

#5 2009-09-26 01:10:24

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

Re: [de-de] [gelöst] if_category und if_article_category zusammenfassen

Falls ich falsch liege, zum Verständnis: “Baustein” ist gleichbedeutend mit dem englischen “form” wie in “txp:output_form”, und mit “Block” meinst du einen Textteil zwischen den if-tags, richtig?
Helfen würde mir z.B. deutscher Text im Code, am besten nachvollziehbare, Code-bezogene wenn/danns.


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

Offline

#6 2009-09-26 12:43:36

GugUser
Member
From: Quito (Ecuador)
Registered: 2007-12-16
Posts: 1,477

Re: [de-de] [gelöst] if_category und if_article_category zusammenfassen

@ uli

Danke uli für deine Antworten. Ich werde mich im Laufe des heutigen Tages daran machen, das Ganze noch einmal zu analysieren und eine neue Beschreibung zu liefern.

“Mit Block” war Baustein gemeint, das rutschte mir unbemerkt durch, weil die Bausteine in der spanischen Version von TxP bloques heissen.

Offline

#7 2009-09-26 15:18:24

GugUser
Member
From: Quito (Ecuador)
Registered: 2007-12-16
Posts: 1,477

Re: [de-de] [gelöst] if_category und if_article_category zusammenfassen

Nachtrag: Zu dieser Problemstellung gibt es unterdessen eine elegantere Lösung

Beim folgenden beschriebenen Fall handelt es sich um die Website von Altervía (ich weiss, hat noch Mängel).

Es gibt dort gegenwärtig sechs Sektionen und fünf Kategorien. Die erste Menü-Ebene wird durch die Sektionen gebildet, in zwei Sektionen zeigt ein aufklappbares Menü die Kategorien an, in welchen ein Eintrag vorhanden ist.

Die Sache ist so aufgebaut, dass der Betreiber der Website Artikel neu schreiben und bestehende editieren kann, er kann Bilder hochladen und editieren, ebenso Dokumente, mehr nicht.

Von mir vorgegeben sind Textbausteine für das title-Element, für h1 (im Kopfbereich) und für description.

Es kommen also die folgenden TxP-Tags vor:

<title><txp:output_form form="title" /> | <txp:output_form form="title-yapa" /></title>
<meta name="description" content="<txp:output_form form='description' />" />
<h1><txp:output_form form="title" /></h1>

Dem entsprechend gibt es auf der nächsten Ebene drei Bausteine, von denen hier zum Thema “title-yapa” unwichtig ist, also geht es nur noch um zwei Bausteine, “title” und “description”.

In beiden Bausteinen gibt es Anweisungen “wenn Sektion B dann Text B”, “wenn Kategorie R dann Text R” und ein “sonst Text A”, welcher zum Beispiel auf der Startseite “actual” ausgegeben wird.

Also, der Baustein “title” sieht so aus:

<txp:if_section name="B">Text B
<txp:else /><txp:if_section name="C">Text C
<txp:else /><txp:if_section name="D">Text D
<txp:else /><txp:if_section name="E">Text E
<txp:else /><txp:output_form form="title-category" />
</txp:if_section></txp:if_section></txp:if_section></txp:if_section>

Darin wird auf einen weiteren Baustein “title-category” verwiesen (weil das mit dieser Aufteilung die Pflege vereinfacht).

Der Baustein “title-category” sieht so aus:

<txp:if_category name="R">Text R
<txp:else /><txp:if_category name="S">Text S
<txp:else /><txp:if_category name="T">Text T
<txp:else /><txp:if_category name="U>Text U
<txp:else /><txp:if_category name="V">Text V
<txp:else />Text A
</txp:if_category></txp:if_category></txp:if_category></txp:if_category></txp:if_category>

Das funktioniert, solange Sektionsseiten und solche, auf denen die Artikel einer Kategorie aufgelistet sind, besucht werden. Sobald aber ein einzelner Artikel gezeigt wird, wird Text A ausgegeben (was verständlich ist), was nicht dem entspricht, was ich erreichen will. Auch für einen einzelnen Artikel der Kategorie R sollte in title der Text R ausgegeben werden.

Ich vermute nun, ich müsste noch einmal dasselbe wie im Baustein “title-category” machen, aber mit <txp:if_article_category name="R">Text R usw. Allerdings wären die darin verwendeten Sätze dieselben R, S, T, U und V. Deshalb meine Überlegung, ob das nicht zusammenfassbar wäre, um jeden Satz nur einmal schreiben zu müssen.

Ich hoffe das sei dieses Mal verständlich dargelegt.

Last edited by GugUser (2009-10-03 03:33:46)

Offline

#8 2009-09-26 16:22:59

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

Re: [de-de] [gelöst] if_category und if_article_category zusammenfassen

GugUser wrote:

Ich hoffe das sei dieses Mal verständlich dargelegt.

Scheinbar!
Und es kann wirklich bei meinem Vorschlag aus post#4 bleiben.

Falls es überhaupt klappt, einen tag-Namen mittendrin mit einem weiteren tag aufzuschneiden, sehe ich noch ein potenzielles Problem, das der Selbstreferenzierung, da der Baustein “title-category” sich aus sich selbst heraus wieder aufrufen könnte, wenn es eine zusätzliche Kategorie gibt. Aber das hast du ja offenbar ausgeschlossen, indem du deinen Kunden nur an Artikel und Bilder lässt. Aber auch bei der Überarbeitung durch dich besteht hier natürlich dieselbe Fehlerquelle.

Ich hoffe es klappt, wäre mal ein innovativer tag-Einsatz.


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

Offline

#9 2009-09-26 19:07:43

GugUser
Member
From: Quito (Ecuador)
Registered: 2007-12-16
Posts: 1,477

Re: [de-de] [gelöst] if_category und if_article_category zusammenfassen

uli schrieb:

sehe ich noch ein potenzielles Problem, das der Selbstreferenzierung (…)

Im Jetztzustand besteht das Problem nicht, da zusätzliche Sektionen oder Kategorien, falls sie nicht in meinen if-Ketten definiert sein sollten, mit dem letzen else abgefertigt werden; der Text A ist der Satz mit einer für alle Fälle gültigen Aussage …

Deine vorgeschlagene Lösung muss ich mal mit frischem Kopf durchdenken, noch durchschaue ich das nicht ganz. Melde mich wieder, wenn ich das versucht habe …

Last edited by GugUser (2009-09-26 19:12:12)

Offline

#10 2009-09-27 21:46:51

GugUser
Member
From: Quito (Ecuador)
Registered: 2007-12-16
Posts: 1,477

Re: [de-de] [gelöst] if_category und if_article_category zusammenfassen

@ uli

So, nun habe ich deinen Vorschlag ausprobiert. Die Idee ist bestechend, in <txp:if_category> zwischen if und _category ein _article einzusetzen, falls ein einzelner Artikel gezeigt wird, also nach dem folgenden Prinzip: <txp:if<txp:if_individual_article>_article</txp:if_individual_article>_category name="energia-solar">. Aber, diese Einbettung innerhalb des Tag-Namens scheint TxP gar nicht gut zu tun – es wurde nämlich grad nichts mehr angezeigt!

Ich versuchte noch die Einbettung mit “…”, ‘…’ und {…} abzugrenzen, was zwar die Seite wieder sichtbar machen liess, aber eine fehlerhafte Ausgabe verursachte.

Mir wurde nun deine Überlegung verständlicher. Ich müsste folgendes definieren können: <if_category oder if_article_category name="R">Text R. Dieses oder ist z. B. in Javascript einfach anzubringen.

Leider muss ich passen, wenn es darum geht, aktiv mit PHP etwas Neues zu schreiben. Aber ich denke, das müsste doch möglich sein. Könnte eventuell etwas in diese Richtung zu einer Lösung führen? Und wie wäre ein solcher Tag wieder zu schliessen? Weiss da jemand eine Antwort?

Last edited by GugUser (2009-09-27 21:47:48)

Offline

#11 2009-09-27 22:39:17

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

Re: [de-de] [gelöst] if_category und if_article_category zusammenfassen

Schade, ich wollte so gerne in die Geschichte eingehen ;)

An die schnarchlangweilige Lösung, je einen deiner Sätze in einem Baustein abzuspeichern und ihn per output_form einzuspeisen hast du sicher bereits gedacht … ? Und als zu pflegeaufwendig beiseite geschoben ;)

GugUser wrote:

Und – macht eigentlich ein solche Anhäufung von Bedingungen die Ausgabe der Website spürbar langsamer?

Meine Vermutung ist, dass die Schachtelung etwas ausbremst und das folgende Schema einen Tick schneller abliefe:

<txp:if_section name="B">Text B</txp:if_section>
<txp:if_section name="C">Text C</txp:if_section>
...
<txp:else />
      <txp:output_form form="title-category" />
</txp:if_section>

Schau doch mal in der tag trace nach.


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

Offline

#12 2009-09-28 01:30:34

GugUser
Member
From: Quito (Ecuador)
Registered: 2007-12-16
Posts: 1,477

Re: [de-de] [gelöst] if_category und if_article_category zusammenfassen

@ uli

Schade, ich wollte so gerne in die Geschichte eingehen ;)

Lass dich wegen deines Eingangs in die Geschichte nicht betrüben; Ptolemäus ist der Menschheit bis heute in Erinnerung geblieben ;-) .

Zu deinem Vorschlag: Nein, nein, das geht so nicht!

Wo wird denn dein letztes </txp:if_section> geöffnet? Und falls ich deine Zeilen so auflisten würde, mit einem <txp:if_section name="D"> vor dem <txp:else />, dann würde, falls z. B. Sektion B zutrifft, Text B und der Text nach dem letzten <txp:else /> aus dem Baustein “title-category” ausgegeben.

Gemäss der von mir gemachten Versuchen muss die Verschachtelung so sein wie ich’s gemacht habe, zumindest funktioniert’s in meinem Fall, die andere Version nicht.

Last edited by GugUser (2009-09-28 01:31:43)

Offline

Board footer

Powered by FluxBB