Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#16 2006-09-05 08:51:18

Skubidu
Archived Plugin Author
Registered: 2004-10-23
Posts: 611
Website

Re: [de-de] Wieder einmal custom_field

Da ich nicht weiß wie Dein Gesamtlayout aussieht, einen generellen Tipp:

Du könntest die ganze Mühe mit dem PHP-Skript umgehen, indem Du sowohl Deinen Artikelbereich als auch die Seitenleiste mit der Infobox in einem Artikelbaustein zusammenführst. In Deiner Seitenvorlage gäbe es dann letztendlich nur das HTML-Gerüst was davor und danach noch nötig ist – Text und Seitenleiste würdest Du dann mit <txp:article form="textundinfobox" /> aufrufen. Verschiedene Layouts für Start- und Artikelseiten, könnest Du dann mittels <txp:if_individual_article>...</...> oder <txp:if_article_list>...</...> lösen.

Vorteil an dieser Lösung: Du hättest keine Probleme auf Deinen Sektionsstartseiten, da mit dem einen Artikel auf der Startseite ja auch die Infobox aufgerufen würde.

Last edited by Skubidu (2006-09-05 08:52:19)

Offline

#17 2006-09-05 09:39:01

ede
Member
Registered: 2006-05-02
Posts: 39

Re: [de-de] Wieder einmal custom_field

besten dank,
werde mal versuchen es über bausteine zu lösen.
ansonsten frage ich die boxen auf den startseiten über sektionen und/oder kategorien ab.
(habe gerade eine ähnliche antwort versehentlich über “melden” versendet – weiß garnicht wo das nun landet)

Offline

#18 2006-09-06 08:14:46

ede
Member
Registered: 2006-05-02
Posts: 39

Re: [de-de] Wieder einmal custom_field

ich würde gerne nochmal auf die möglichkeit nach status“sticky” zu filtern zurückkommen.

dem Artikel eine herausfilterbaren Status zuweisen (z. B. sticky), damit Du mittels PHP beispielsweise auf Sektionsstartseiten immer nach dem einzigen fixierten Artikel der Sektion suchen kannst, um die Infobox auszugeben

wie fragt mam denn so einen status ab?

Last edited by ede (2006-09-06 08:15:37)

Offline

#19 2006-09-06 09:51:14

Skubidu
Archived Plugin Author
Registered: 2004-10-23
Posts: 611
Website

Re: [de-de] Wieder einmal custom_field

wie fragt mam denn so einen status ab?

Naja, man könnte das dann wieder mittels PHP machen.
Wo liegt denn genau Dein Problem, dass dies nötig wird – soweit ich Dein Seitenkonzept bisher verstanden habe, solltest Du mit einem geschickten Einsatz von Seitenvorlagen und Bausteinen zum gewünschten Ziel kommen. Allerdings mit einen ausgiebigen Einsatz von Conditionals.

Hast Du nen Link oder Code-Beispiele um das Problem nachzuvollziehen?

Offline

#20 2006-09-06 10:01:28

ede
Member
Registered: 2006-05-02
Posts: 39

Re: [de-de] Wieder einmal custom_field

ich glaube, dass es mit einem “großen” baustein, in dem alles steckt, irgendwann nicht mehr klappt.
die seiten werden wohl z.t. recht verschieden aussehen.

mein ansatz war jetzt der:

<!--CONTENT-->
<div id="contentcenter">

<txp:if_article_list>
<txp:article form="standartseite" limit="1" status="sticky" />
</txp:if_article_list>

<txp:if_individual_article>
<txp:article form="newsdetail" />
</txp:if_individual_article>

</div>
<!--CONTENTENDE-->

<!--SIDEBAR-->
<div id="contentright">
<txp:if_article_list>
<txp:output_form form="infobox_code_sticky" />
</txp:if_article_list>

<txp:if_individual_article>
<txp:output_form form="infobox_code" />
</txp:if_individual_article>
</div>
<!--SIDEBARENDE-->

wobei im baustein “infox_code” dein php-code steckt und in “infobox_code_sticky” der neue/abgeänderte code

[Bearbeitet wegen Codeanzeige: Noch einmal für alle der Hinweis, dass Ihr Code-Blöcke mittels Textile und bc.. (zwei Punkte!) auszeichnen könnt. Wenn ihr danach normal weiterschreiben wollt, müsst den Block-Code mittels einer Leerzeile und p. wieder aufheben. Siehe FAQ

Last edited by Skubidu (2006-09-06 10:41:56)

Offline

#21 2006-09-06 10:33:43

Skubidu
Archived Plugin Author
Registered: 2004-10-23
Posts: 611
Website

Re: [de-de] Wieder einmal custom_field

Bei dem Ansatz müsstest Du für deine infobox_code_sticky auf jeden Fall wieder mit PHP zu Werke gehen, weil Du den Baustein über output_form integrierst und sonst ja die Artikelinfomationen nicht abrufbar wären.

Ich würde Dir folgenden Vorschlag machen:

Seitenvorlage

<txp:if_article_list>
  <txp:if_section name="sektion1">
    <txp:article form="standardseite1" limit="1" status="sticky" />
  </txp:if_section>
  <txp:if_section name="sektion2">
    <txp:article form="standardseite2" limit="1" status="sticky" />
  </txp:if_section>
  <txp:if_section name="sektion3">
    <txp:article form="standardseite3" limit="1" status="sticky" />
  </txp:if_section>
</txp:if_article_list>

<txp:if_individual_article>
  <txp:if_section name="sektion1">
    <txp:article form="newsdetail1" />
  </txp:if_section>
  <txp:if_section name="sektion2">
    <txp:article form="newsdetail2" />
  </txp:if_section>
  <txp:if_section name="sektion3">
    <txp:article form="newsdetail3" />
  </txp:if_section>
</txp:if_individual_article>

Für den Baustein standardseite1 (für alle anderen in dem entsprechend variierten Layout):

<div id="contentcenter">

  ... Code wie der Artikel auf der Sektionsstartseite aussehen soll ...

</div>
<div id="contentright">
  <txp:php>
    global $thisarticle;
    echo article_custom(array('form' => 'infobox', 'id' => $thisarticle['infobox_id')); 
  </txp:php>
<div>

Für den Baustein newsdetail1 (für alle anderen in dem entsprechend variierten Layout) dann das gleiche wie für standardseite1 mit entsprechend variiertem Layout. Oder – noch besser – den selben Baustein verwenden und Unterschiede mit Conditionals einfügen.

Offline

#22 2006-09-06 10:47:20

ede
Member
Registered: 2006-05-02
Posts: 39

Re: [de-de] Wieder einmal custom_field

so habe ich das ja noch nie gesehen.
damit benötigt man ja für das komplette web nur eine seitenvorlage.
finde ich sehr gut, ich müsste allerdings noch an ein paar anderen stellen (z.b. subnavigation) sektionen abfragen.

wie sieht es bei so vielen conditionals denn dann mit den ladezeiten aus/gibt es irgendwelche zu erwartenden nachteile?

Offline

#23 2006-09-06 10:56:35

Skubidu
Archived Plugin Author
Registered: 2004-10-23
Posts: 611
Website

Re: [de-de] Wieder einmal custom_field

Also ich habe bei meinen Seiten bisher keine Ladeprobleme bzw. -Verzögerzungen feststellen können. Die meisten Conditionals fragen Werte globalen Variablen ab, so dass keine weiteren Datenbankabfragen nötig sind (jemand mit tiefergehenden Programmierverständnis als ich, möge mich an dieser Stelle korrigieren). Solch eine zusätzliche Datenbankabfrage wird allerdings bei jedem Aufruf des PHP-Codes nötig, den Du in Deinem bisherigen Code hast ($custom_id = fetch('custom_2','textpattern','id',$pretext['id'],$debug='');). Ich glaube zwar nicht, das man es groß messen kann, aber ich denke, dass die Variante mit den Conditionals tendenziell schneller ist.

Last edited by Skubidu (2006-09-06 11:08:51)

Offline

#24 2006-09-06 11:26:40

ede
Member
Registered: 2006-05-02
Posts: 39

Re: [de-de] Wieder einmal custom_field

ok, danke.
habe das jetzt mal so nachgebaut. es fehlt nur die abfrage, ob überhaupt eine infobox zugewiesen wurde (ansonsten werden wieder alle artikel zusätzlich als infobox dargestellt).

das hattest du für mich in einem der vorherigen schritten mit diesem “fetch” gelöst.

kann ich das so wieder einbauen, oder räts du mir eher davon ab?

Offline

#25 2006-09-06 11:34:19

Skubidu
Archived Plugin Author
Registered: 2004-10-23
Posts: 611
Website

Re: [de-de] Wieder einmal custom_field

Mit der Funktion fetch() habe ich die ID der jeweiligen Artikels geladen.
Da Du Dich jetzt innerhalb eines Artikelbausteins bewegst, kannst Du wieder <txp:if_custom_field>...</...> verwenden, um abzufragen, ob ein Eintrag im benutzerdefinierten Feld vorliegt.

Offline

#26 2006-09-06 11:44:28

ede
Member
Registered: 2006-05-02
Posts: 39

Re: [de-de] Wieder einmal custom_field

das hatte ich auch schon probiert. es funktioniert nur leider nicht. bei den artikeln, die keine infobox bekommen sollen, werden alle artikel angezeigt.

<div id="contentright">
<txp:if_custom_field name="infobox_id">
<txp:php>
    global $thisarticle;
    echo article_custom(array('form' => 'infobox', 'id' => $thisarticle['infobox_id'])); 
  </txp:php>
</ txp:if_custom_field>
<div>

Offline

#27 2006-09-06 11:46:37

ede
Member
Registered: 2006-05-02
Posts: 39

Re: [de-de] Wieder einmal custom_field

entschuldigung!
ein space im schließenden if_custom_field tag war schuld.

Offline

#28 2006-09-06 11:46:52

Skubidu
Archived Plugin Author
Registered: 2004-10-23
Posts: 611
Website

Re: [de-de] Wieder einmal custom_field

Okee :)

—-

Dann versuch es wie folgt:

<txp:php>
  global $thisarticle;
  if($thisarticle['infobox_id']) {
    echo article_custom(array('form' => 'infobox', 'id' => $thisarticle['infobox_id']));
  }
</txp:php>

Last edited by Skubidu (2006-09-06 11:47:52)

Offline

Board footer

Powered by FluxBB