Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#1 2011-10-31 07:22:44

krone1234
New Member
Registered: 2011-10-31
Posts: 2

[de-de] Unterschiedliche Seitenhintergründe (CSS-Background) je nach Artikel

Hallo miteinander

Ich bin gerade eine Grafik-Portfolio-Seite am erstellen mit TXP und möchte für einige Artikel besondere body-Hintergrundfarben. Ich habe hierfür ein Customfield erstellt, wobei ich manuell einem Artikel einen Hex-Code mitgeben kann. Wenn das Feld leer ist, soll eine vorgegebene Hintergrundfarbe erscheinen. Im Page-Header habe ich hierfür folgendes eingebunden:

<txp:article form=“css_bg”/>

das Form sieht so aus:

<txp:if_custom_field name=“custom_bgcolor”>
<STYLE type=“text/css”> body { background: <txp:custom_field name=“custom_bgcolor”/>;}</STYLE>
<txp:else />
<STYLE type=“text/css”> body { background: green;} </STYLE>
</txp:if_custom_field>
<txp:if_custom_field name=“custom_bgcolor”/>

Dies ist jedoch der falsche Ansatz, da es bei mehreren Artikeln jeweils alle auflistet und dann einfach die Eigenschaft des letzten nimmt.

Gibt es hierfür eine saubere Lösung?

Herzlichen Dank und liebe Grüsse
krone1234

Offline

#2 2011-10-31 14:09:27

jakob
Admin
From: Germany
Registered: 2005-01-20
Posts: 4,611
Website

Re: [de-de] Unterschiedliche Seitenhintergründe (CSS-Background) je nach Artikel

Dein Ansatz ist ok, aber logischerweise wird der Hintergrundfarbe der zuletzt aufgelistete Artikel angezeigt (schau in dein Quellcode).

Ich nehme an du brauchst es nur für individuelle Artikel-Seiten, oder? Wenn ja:

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

und dann (die letzte Zeile brauchst Du nicht):

<txp:if_custom_field name="custom_bgcolor">
   <style type="text/css"> body { background: <txp:custom_field name="custom_bgcolor" />;}</style>
<txp:else />
   <style type="text/css"> body { background: green;} </style>
</txp:if_custom_field>

Für die Artikel-List Seite gäbe es unterschiedliche Ansätze.

  • Feste Farben für die Liste-Seiten kannst Du mit CSS definieren in dem Du dein body-tag also <body id="<txp:section />"> ausgibst und dann body#section-name { background-color: green; } in dein CSS definierst …
  • wenn deine List-Seite die Farbe von der neuste Artikel nehmen soll, kannst Du dies mit Hilfe der limit Attribute. Nimm hierfür die if_individual_article tags oben wieder raus, und lass txp nur ein Artikel ausgeben, wenn es auf eine Artikel-List-Seite ist:
<txp:article form="css_bg" limit="1" />

TXP Builders – finely-crafted code, design and txp

Offline

Board footer

Powered by FluxBB