News-Modul: Wenn nur 1 News da ist....
News-Modul: Wenn nur 1 News da ist....
Hallo zusammen... ich suche eine Möglichkeit um im News-Modul, wenn nur eine News (in der jeweiligen Kategorie) vorhanden ist, direkt die Detailansicht anzuzeigen.
Vielleicht kann mir jemand helfen.. =) denn die Suche hat "bisher" noch nichts ergeben..
Vielleicht kann mir jemand helfen.. =) denn die Suche hat "bisher" noch nichts ergeben..
Re: News-Modul: Wenn nur 1 News da ist....
Sollte eigentlich ganz einfach sein.
Kommt drauf an, ob die Artikel ID mit im Zusammenfassungs-Template enthalten ist.
Im Zusammenfassungs-Template gibt es eine Variable "$count" oder so.
Die gibt die Anzahl der anzuzeigenden Artikel an.
Jetzt musst du nur in der foreach-Schleife prüfen ob die Anzahl der Artikel gleich 1 ist.
Wenn ja, dann ruf einfach nochmal das NewsModul auf aber mit dem Parameter action=detail und der Artikel ID des anzuzeigenden Artikels.
Anderenfalls kommt eben die Zusammenfassung.
Kommt drauf an, ob die Artikel ID mit im Zusammenfassungs-Template enthalten ist.
Im Zusammenfassungs-Template gibt es eine Variable "$count" oder so.
Die gibt die Anzahl der anzuzeigenden Artikel an.
Jetzt musst du nur in der foreach-Schleife prüfen ob die Anzahl der Artikel gleich 1 ist.
Wenn ja, dann ruf einfach nochmal das NewsModul auf aber mit dem Parameter action=detail und der Artikel ID des anzuzeigenden Artikels.
Anderenfalls kommt eben die Zusammenfassung.
Re: News-Modul: Wenn nur 1 News da ist....
Also nur um Missverständnisse vorzubeugen...
Das News-Template soll dies für mich automatisch machen.. also sobald nur eine News Aktiv ist soll diese eine als Detail angezeigt werden. Wenn 2 oder mehr News vorhanden sind dann sollen die News als Vorschau angezeigt werden...
Das Template sieht folgendermaßen aus!
jetzt sollte ich sowas schreiben wie:
und hier das normale Template hinter?!?!?!?!
Das Problem ist.. das wenn ich den tag {count_news_items} mal auf einer leeren Seite einfügen schmeißt er mir absolut nichts raus..
Das zweite Problem ist das ich nicht wirklich schlau aus den ganzen Tags werde.. ich verstehen zwar oft den Sinn, so das ich das Template umstellen und umbauen kann, aber wirklich begriffen hab ich das nicht.. gibt’s da nicht irgendwo ne Möglichkeit die Syntax zu erlernen?
Das News-Template soll dies für mich automatisch machen.. also sobald nur eine News Aktiv ist soll diese eine als Detail angezeigt werden. Wenn 2 oder mehr News vorhanden sind dann sollen die News als Vorschau angezeigt werden...
Das Template sieht folgendermaßen aus!
Code: Select all
{count_news_items}
{if isset($entry->canonical)}
{assign var='canonical' value=$entry->canonical}
{/if}
{assign var='autodescription' value=$entry->title}
<!-- Start News Display Template -->
{foreach from=$items item=entry}
<div class="NewsSummary">
<div class="NewsSummaryLink">
<h3><a href="{$entry->moreurl}" title="{$entry->title}" class="white invert">{$entry->title|escape}</a></h3>
</div>
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<div class="NewsSummaryField">
{if $field->type == 'file'}
<img class="newsimg" alt="" src="{$entry->file_location}/{$field->value}"/>
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div>
{/foreach}
{/if}
{if $entry->summary}
<div class="NewsSummarySummary">
{eval var=$entry->summary}
</div>
{else if $entry->content}
<div class="NewsSummaryContent">
{eval var=$entry->content}
</div>
{/if}
<br /> <div class="NewsSummaryMorelink">
<p><a href="{$entry->moreurl}" title="Ganzen Artikel lesen: {$entry->title}">Zum Artikel: {$entry->title}</a></p>
</div>
</div>
<hr class="kghr"/>
<br />
{/foreach}
<!-- End News Display Template -->
Code: Select all
{if {count_news_items} == "1"}
{if $entry->content}
<div class="NewsSummaryContent">
{eval var=$entry->content}
</div>
{/if}
{/if}
{ else if .......
Das Problem ist.. das wenn ich den tag {count_news_items} mal auf einer leeren Seite einfügen schmeißt er mir absolut nichts raus..
Das zweite Problem ist das ich nicht wirklich schlau aus den ganzen Tags werde.. ich verstehen zwar oft den Sinn, so das ich das Template umstellen und umbauen kann, aber wirklich begriffen hab ich das nicht.. gibt’s da nicht irgendwo ne Möglichkeit die Syntax zu erlernen?
Last edited by syl3x on Thu Jul 01, 2010 11:53 am, edited 1 time in total.
Re: News-Modul: Wenn nur 1 News da ist....
Warum müsst ihr immer so um die Ecke denken?
Was bitte ist denn {count_news_items}
Und wieso sollte der Dir irgendwas ausgeben, wenn Du ihn einfach so völlig losgelöst vom NewsModul irgendwo auf einer leeren Seite platzierst?
Im mitgelieferten Zusammenfassungs-Template steht doch alles in folgender Bedingung:
{$itemcount} Enthält also die Anzahl der anzuzeigenden News-Artikel.
Und der ganze Spaß soll nur angezeigt werden, wenn es mindestens einen News-Artikel gibt.
Und dann werden alle News-Artikel durchgegangen:
Wenn man da jetzt einfach folgendes ändert:
Sollte das Problem eigentlich gelöst sein.
Was bitte ist denn {count_news_items}

Und wieso sollte der Dir irgendwas ausgeben, wenn Du ihn einfach so völlig losgelöst vom NewsModul irgendwo auf einer leeren Seite platzierst?
Im mitgelieferten Zusammenfassungs-Template steht doch alles in folgender Bedingung:
Code: Select all
{if $itemcount>0}
...
{/if}
Und der ganze Spaß soll nur angezeigt werden, wenn es mindestens einen News-Artikel gibt.
Und dann werden alle News-Artikel durchgegangen:
Code: Select all
{foreach from=$items item=entry}
...
{/foreach}
Code: Select all
{foreach from=$items item=entry}
{if $itemcount == 1}
{news action="detail" articleid="$entry->id" ... }
{else}
...
{/if}
{/foreach}
Last edited by NaN on Thu Jul 01, 2010 12:28 pm, edited 1 time in total.
Re: News-Modul: Wenn nur 1 News da ist....
Sooo... ich hab das jetzt folgendermaßen gelöst.... ich habe das ganze über 2 Templates gemacht...
der Eintrag:
verweist auf das andere Template:
DICKES DANKE für deine Hilfe... Ohne wäre ich im Leben nicht darauf gekommen!!!!
Code: Select all
if isset($entry->canonical)}
{assign var='canonical' value=$entry->canonical}
{/if}
{assign var='autodescription' value=$entry->title}
<!-- Start News Display Template -->
{if $itemcount == 1}
{news category='LesBar' lang="de_DE" summarytemplate="carpeNewskurzdetail"}
{else}
{foreach from=$items item=entry}
<div class="NewsSummary">
<div class="NewsSummaryLink">
<h3><a href="{$entry->moreurl}" title="{$entry->title}" class="white invert">{$entry->title|escape}</a></h3>
</div>
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<div class="NewsSummaryField">
{if $field->type == 'file'}
<img class="newsimg" alt="" src="{$entry->file_location}/{$field->value}"/>
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div>
{/foreach}
{/if}
{if $entry->summary}
<div class="NewsSummarySummary">
{eval var=$entry->summary}
</div>
{else if $entry->content}
<div class="NewsSummaryContent">
{eval var=$entry->content}
</div>
{/if}
<br /> <div class="NewsSummaryMorelink">
<p><a href="{$entry->moreurl}" title="Ganzen Artikel lesen: {$entry->title}">Zum Artikel: {$entry->title}</a></p>
</div>
</div>
<hr class="kghr"/>
<br />
{/foreach}
{/if}
<!-- End News Display Template -->
Code: Select all
{if $itemcount == 1}
{news category='LesBar' lang="de_DE" summarytemplate="carpeNewskurzdetail"}
{else}
verweist auf das andere Template:
Code: Select all
{if isset($entry->canonical)}
{assign var='canonical' value=$entry->canonical}
{/if}
{assign var='autodescription' value=$entry->title}
<!-- Start News Display Template -->
{foreach from=$items item=entry}
{if $entry->content}
<div class="NewsSummaryContent">
{eval var=$entry->content}
</div>
{/if}
<hr class="kghr"/>
<br />
{/foreach}
<!-- End News Display Template -->
Last edited by syl3x on Thu Jul 01, 2010 1:47 pm, edited 1 time in total.
Re: News-Modul: Wenn nur 1 News da ist....
habs jetzt noch einfacher gelöst...
Ich glaube nicht... und ich weiss auch nicht wie ich sie da hinein bekomme....
darum meine Alternativ-Lösungen...welche ich ganz in Ordnung finde. Nur, das ich den Titel noch nicht ganz oben hab... was aber auch so sollte da der User schließlich auf „XXX“ geklickt hat und nicht auf „XYZ“ ...
Code: Select all
{if isset($entry->canonical)}
{assign var='canonical' value=$entry->canonical}
{/if}
{assign var='autodescription' value=$entry->title}
<!-- Start News Display Template -->
{foreach from=$items item=entry}
{if $itemcount == 1}
{if $entry->content}
<h4>{$entry->title}</h4>
{$entry->content}
{/if}
{else}
<div class="NewsSummary">
<div class="NewsSummaryLink">
<h3><a href="{$entry->moreurl}" title="{$entry->title}" class="white invert">{$entry->title|escape}</a></h3>
</div>
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<div class="NewsSummaryField">
{if $field->type == 'file'}
<img class="newsimg" alt="" src="{$entry->file_location}/{$field->value}"/>
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div>
{/foreach}
{/if}
{if $entry->summary}
<div class="NewsSummarySummary">
{eval var=$entry->summary}
</div>
{else if $entry->content}
<div class="NewsSummaryContent">
{eval var=$entry->content}
</div>
{/if}
<br /> <div class="NewsSummaryMorelink">
<p><a href="{$entry->moreurl}" title="Ganzen Artikel lesen: {$entry->title}">Zum Artikel: {$entry->title}</a></p>
</div>
</div>
<hr class="kghr"/>
<br />
{/if}
{/foreach}
<!-- End News Display Template -->
Sollte eigentlich ganz einfach sein.
Kommt drauf an, ob die Artikel ID mit im Zusammenfassungs-Template enthalten ist.
Ich glaube nicht... und ich weiss auch nicht wie ich sie da hinein bekomme....
darum meine Alternativ-Lösungen...welche ich ganz in Ordnung finde. Nur, das ich den Titel noch nicht ganz oben hab... was aber auch so sollte da der User schließlich auf „XXX“ geklickt hat und nicht auf „XYZ“ ...
Last edited by syl3x on Mon Jul 05, 2010 7:45 am, edited 1 time in total.
Re: News-Modul: Wenn nur 1 News da ist....
{$entry->id} Wie oben beschriebensyl3x wrote:Ich glaube nicht... und ich weiss auch nicht wie ich sie da hinein bekomme....Sollte eigentlich ganz einfach sein.
Kommt drauf an, ob die Artikel ID mit im Zusammenfassungs-Template enthalten ist.

"Ganz oben" steht in Deinem Seiten-Template vermutlich auch nur {title}.syl3x wrote: Nur, das ich den Titel noch nicht ganz oben hab...
Da Du das News-Module aber erst nach dem Titel aufrufst, kannst Du den ja nicht mehr ändern. Versuch stattdessen mal das News-Modul vor dem Titel aufzurufen, aber die Ausgabe des News-Moduls mit Hilfe von {capture} einer Variablen zuzuweisen (anstatt es anzuzeigen).
Dann kannst Du in der Zeile wo {title} steht prüfen, ob es einen News-Titel gibt:
Code: Select all
{if isset($newstitle)}
{$newstitle}
{else}
{title}
{/if}
Code: Select all
{if $entry->content}
{assign var="newstitle" value=$entry->title}
<h4>{$entry->title}</h4>
{$entry->content}
{/if}
Re: News-Modul: Wenn nur 1 News da ist....
Betreffs Titel könnte dir eventuell dieser "Trick" allgemein weiterhelfen (Wie zeige ich den Titel der News als Überschrift an): http://forum.cmsmadesimple.org/index.ph ... 475.0.html
Re: News-Modul: Wenn nur 1 News da ist....
Das läuft für die normale News Detail anzeige schon..Betreffs Titel könnte dir eventuell dieser "Trick" allgemein weiterhelfen (Wie zeige ich den Titel der News als Überschrift an): http://forum.cmsmadesimple.org/index.ph ... 475.0.html
das weiss ich doch.. allerdings hauts bei mir mit deiner Version gar nicht hin.. mir wird nichts angezeigt...Quote from: syl3x on Today at 03:33
Quote
Sollte eigentlich ganz einfach sein.
Kommt drauf an, ob die Artikel ID mit im Zusammenfassungs-Template enthalten ist.
Ich glaube nicht... und ich weiss auch nicht wie ich sie da hinein bekomme....
{$entry->id} Wie oben beschrieben Wink
und so wie ich das jetzt verstanden habe müsste ich auch für jede Kategorie ein Template anlegen.. was mir zu unübersichtlich werden würde.. (so hätte ich das zumindest mit meiner ersten version machn müssen..)
Re: News-Modul: Wenn nur 1 News da ist....
Deine Idee ist ja auch nicht schlecht.syl3x wrote:das weiss ich doch.. allerdings hauts bei mir mit deiner Version gar nicht hin.. mir wird nichts angezeigt...{$entry->id} Wie oben beschrieben Wink
Finde ich sogar noch besser als diese Gefrickel mit verschachtelten Modulaufrufen.
Eigentlich müsste ein Template reichen.syl3x wrote: und so wie ich das jetzt verstanden habe müsste ich auch für jede Kategorie ein Template anlegen.. was mir zu unübersichtlich werden würde.. (so hätte ich das zumindest mit meiner ersten version machn müssen..)
Aber wenn es eh nicht funktioniert, dann lassen wir diesen Ansatz lieber.
War ja nur eine Idee
