Entries unterschiedlich darstellen (Hintergrund)

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
jorainbo
Regular
Posts: 64
Joined: Thu Nov 03, 2005 5:07 pm

Entries unterschiedlich darstellen (Hintergrund)

Post by jorainbo »

Hallo,

die Idee ist, die Entries auf der Startseite (oder auch einer Kategorie, eines users, etc, eben immer wenn mehrere entries auf einer Seite kommen) mit unterschiedlichen Hintrgrundfarben zu versehen, damit sie sich besser voneinander abheben...also so ne Art Schattierung.

Immer abwechselnd... hoffe das war verständlich. Am besten dafür wären unterschiedliche CSS-Klassen.

Wenn ich mir die entries.tpl anschaue, dann baut die ja die Seite über "foreach"-Schleifen zusammen (ich muss dazusagen, meine php-Kenntnisse sind rudimentär +g*). D.h. aber auch, jeder entry ist gleich und hat die gleichen CSS-Klassen.

Gibt´s da ne Möglichkeit, abwechselnd zusätzliche/andere CSS Klassen mitzugeben je entry so dass man die besser formatieren kann?

Danke und Grüße
Jorainbo
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Entries unterschiedlich darstellen (Hintergrund)

Post by garvinhicking »

Hi!

Innerhalb der {foreach} schleifen kannst Du auf einen index zugreifen, und Du kannst dann prüfen ob dieser Index gerade oder ungerade ist.

Code: Select all

{foreach from=$entries item="entry" name="entryloop"}
{if $smarty.foreach.entryloop.index % 2}
<div class="odd">
{else}
<div class="even">
{/if}

...

</div>
{/foreach}
Dann kannst Du die CSS-Klassen .odd und .even einfach speziell hinterlegen.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
jorainbo
Regular
Posts: 64
Joined: Thu Nov 03, 2005 5:07 pm

Re: Entries unterschiedlich darstellen (Hintergrund)

Post by jorainbo »

garvinhicking wrote:Hi!

Innerhalb der {foreach} schleifen kannst Du auf einen index zugreifen, und Du kannst dann prüfen ob dieser Index gerade oder ungerade ist.

Code: Select all

{foreach from=$entries item="entry" name="entryloop"}
{if $smarty.foreach.entryloop.index % 2}
<div class="odd">
{else}
<div class="even">
{/if}

...

</div>
{/foreach}
Dann kannst Du die CSS-Klassen .odd und .even einfach speziell hinterlegen.

Viele Grüße,
Garvin
perfekt, genausowas habe ich gesucht...werde ich heut abend gleich mal testen, wird aber sicher funktionieren....super, vielen Dank

Jorainbo
call
Regular
Posts: 37
Joined: Tue Jul 18, 2006 7:09 pm

Post by call »

es funktioniert!

bei mir kommt es nur vor, dass zwischendurch mal zwei einträge hintereinander farblich hinterlegt sind und das mit dem abwechselnd farbe/keine farbe nicht immer passt.
aber ich hab ne vermutung warum das bei mir so ist.

gruss,
stephan
jorainbo
Regular
Posts: 64
Joined: Thu Nov 03, 2005 5:07 pm

Re: Entries unterschiedlich darstellen (Hintergrund)

Post by jorainbo »

garvinhicking wrote:Hi!

Innerhalb der {foreach} schleifen kannst Du auf einen index zugreifen, und Du kannst dann prüfen ob dieser Index gerade oder ungerade ist.

Code: Select all

{foreach from=$entries item="entry" name="entryloop"}
{if $smarty.foreach.entryloop.index % 2}
<div class="odd">
{else}
<div class="even">
{/if}

...

</div>
{/foreach}
Dann kannst Du die CSS-Klassen .odd und .even einfach speziell hinterlegen.

Viele Grüße,
Garvin
funktioniert leider bei mir nicht richtig. Wenn ich deinen Code unterhalb von

Code: Select all

    {foreach from=$entries item="dategroup"}
in die entries.tpl einbaue,

dann hab ich zum einen massig HTML Warnungen wegen falsch geschlossenem div (frage, wo genau muss das schliessende div und das schliessende foreach hin) und zum anderen habe ich nun irgendwie alle etries doppelt und dreifach *gg* Statt meinen 12 entries zeigt er mir 78 an (alle so 5-6 mal) und die ersten ca. 15 sind schön abwechselnd schattiert, aber irgendwann hört es auf und nur noch sehr unregelmäßig sind die schattierungen drin... ???
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Entries unterschiedlich darstellen (Hintergrund)

Post by garvinhicking »

Hi!

call: Du musst den Loopnamen für den ersten foreach loop nehmen, nicht den zweiten. Sonst würden Einträge nur für dasselbe Datum sich abwechseln!

Jorainbo: Du hast den Code anscheinend falsch eingebaut. :-)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
jorainbo
Regular
Posts: 64
Joined: Thu Nov 03, 2005 5:07 pm

Re: Entries unterschiedlich darstellen (Hintergrund)

Post by jorainbo »

garvinhicking wrote:Hi!
Jorainbo: Du hast den Code anscheinend falsch eingebaut. :-)

Viele Grüße,
Garvin
Ach nee, sag bloß :-))

Die Zeile aus deinem Code:

Code: Select all

{foreach from=$entries item="entry" name="entryloop"} 
muss die zusätzlich in die entries.tpl nach dem ersten foreach? Also diekt nach:

Code: Select all

{foreach from=$entries item="dategroup"}
Habe auch versucht diese Zeile durch deinen Code zu ersetzen, aber dann wurden gar keine entries mehr angezeigt...
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Entries unterschiedlich darstellen (Hintergrund)

Post by garvinhicking »

Hi!
Ach nee, sag bloß :-))
Das war nur ne Retourkutsche dafür, dass ich meine Zauberkugel nicht anwenden konnte.

Sprich, ohne dass du uns zeigst wie Dein Code aussieht (nopaste.php-q.net nutzen, bitte) können wir hier recht wenig dazu sagen, was da schief läuft :)

muss die zusätzlich in die entries.tpl nach dem ersten foreach? Also diekt nach:
Nein, nicht zusätzlich. Mein Loop greift darauf zu; Du musst nur die existierenden foreaches anpassen und einen "name" vergeben, der dann als Index genutzt wird für das Odd/Even-Zählen.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
jorainbo
Regular
Posts: 64
Joined: Thu Nov 03, 2005 5:07 pm

Re: Entries unterschiedlich darstellen (Hintergrund)

Post by jorainbo »

garvinhicking wrote:Hi!


Das war nur ne Retourkutsche dafür, dass ich meine Zauberkugel nicht anwenden konnte.
okay okay :-))
garvinhicking wrote: Sprich, ohne dass du uns zeigst wie Dein Code aussieht (nopaste.php-q.net nutzen, bitte) können wir hier recht wenig dazu sagen, was da schief läuft :)

=> http://nopaste.php-q.net/231760

Nein, nicht zusätzlich. Mein Loop greift darauf zu; Du musst nur die existierenden foreaches anpassen und einen "name" vergeben, der dann als Index genutzt wird für das Odd/Even-Zählen.

Viele Grüße,
Garvin
er schreibt mir die div class=odd und even ja in den quelltext, aber er schliest die div´s nicht an der richtigen stelle und deshalb passt das irgendwie noch nicht....die ersten 4 artikel sind abwechselnd schattiert, dann kommen 3 in der gleichen farbe, dann nochmal 2 in der gleichen farbe und dann nochmal 4 in der gleichen farbe....sehr strange

Danke und Grüße

Jorainbo
call
Regular
Posts: 37
Joined: Tue Jul 18, 2006 7:09 pm

Post by call »

bei mir siehts auch so aus.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Okay, die Loop-Sache hat sich innerhalb von 2 Unterschleifen in der Tat nicht bewährt. Statdessen habe ich mal versucht es mit {counter} zu machen:

http://nopaste.php-q.net/232147


Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
call
Regular
Posts: 37
Joined: Tue Jul 18, 2006 7:09 pm

Post by call »

wenn ich damit richtig liege, dass nur der folgende abschnitt angepasst werden muss,

Code: Select all

{foreach from=$entries item="dategroup" name="entryloop"}
        {counter name="entrycount" start=1 skip=1 assign="entrycount"}
        {if $entrycount % 2}
        <div class="odd">
        {else}
        <div class="even">
        {/if}
dann funzt es nicht.
bei mir werden nun alle entries hinterlegt und nur zwischendurch ist mal einer nicht hinterlegt.

mal jorainbos praxisbericht abwarten.

grüsse,
stephan
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Call, kann man dein ergebnis irgendwo auf einer URL betrachten?

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
call
Regular
Posts: 37
Joined: Tue Jul 18, 2006 7:09 pm

Post by call »

ja, auf
http://www.dailyresearch.de/
(die headlines, jetzt alle grau hinterlegt)

grüsse,
stephan

css

Code: Select all

.odd {
background-color: #f3f3f3;
	}
.even {
background-color: #ffffff;
	}
entries.tpl

Code: Select all

<!-- ENTRIES START -->
    {serendipity_hookPlugin hook="entries_header" addData="$entry_id"}

    {foreach from=$entries item="dategroup" name="entryloop"}
        {counter name="entrycount" start=1 skip=1 assign="entrycount"}
        {if $entrycount % 2}
        <div class="odd">
        {else}
        <div class="even">
        {/if}
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Die position des <div class="xxx"> musst Du auch an die Stelle legen, wo Dein einzelner Eintrag im gesamt-entries.tpl ausgegeben wird. Also als Klasse in dem Div, indem auch dein serendipity_entry body liegt.

Derzeit hast Du es oberhalb des Datums eingetragen, was halt dort ja in der Schleife nur einmal ausgegeben wird...

Leider fehlt mir etwas die Zeit dazu, das hier detailiert darzulegen.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Post Reply