Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 20. Juni 2017 18:21

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 799
Webseite

News - Nach Erstellungsjahren sortieren

Hallo!

Ich möchte die News nach Jahren sortiert ausgeben - ist das möglich?

Vielen Dank!

Offline

#2 20. Juni 2017 20:53

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: News - Nach Erstellungsjahren sortieren

Du meinst, dass zwischen den Jahreswechseln jeweils die Jahreszahl kommt?

2017
- News 1
- News 2

2016
- News 1
- News 2

So etwas kannst du mit Hilfe von zusätzlichen Variablen im Template lösen

{$jahr = ''}
{foreach from=$items item=entry}
{if $entry->postdate|date_format:'%Y' != $jahr}
    <h1>{$entry->postdate|date_format:'%Y'}</h1>
    {$jahr = $entry->postdate|date_format:'%Y'}
{/if}

.... Rest des News Templates .....

{/foreach}

Der Code ist ungetestet, müsste aber in etwa so funktionieren.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#3 21. Juni 2017 08:30

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 799
Webseite

Re: News - Nach Erstellungsjahren sortieren

Ah cool...
Ich werds gleich einfacher machen - ich werde einfach Buttons bzw. LInks drüber machen und jeweils die News von diesem Jahr ausgeben - aber das sollte mit deinem Code eh funktionieren!

Offline

#4 23. Juni 2017 12:53

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 799
Webseite

Re: News - Nach Erstellungsjahren sortieren

Wenn ich z.B. nur ein Jahr ausgeben möchte - brauche ich der Variable $jahr nur den entsprechenden Wert zuweisen und diese Zeile hier

{$jahr = $entry->postdate|date_format:'%Y'}

löschen, oder?

Offline

#5 23. Juni 2017 21:17

nockenfell
Moderator
Ort: Lenzburg, Schweiz
Registriert: 09. November 2010
Beiträge: 2.927
Webseite

Re: News - Nach Erstellungsjahren sortieren

Du braucht die neue Zuweisung, damit du beim nächsten Jahr wieder einen neuen Titel bekommst. Ebenso prüft es bei jedem Datensatz, ob der Titel geändert hat.
Wenn du jedoch nur ein Jahr ausgewählt hast, braucht es das natürlich nicht. Dann sollte aber der Titel ausserhalb der foreach Schleife sein.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#6 30. Juni 2017 09:17

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 799
Webseite

Re: News - Nach Erstellungsjahren sortieren

Wo findet die Auswahl statt, welche Jahr ausgegeben wird?
Es wird ja nur die Variable angelegt, der Titel hinzugefügt - aber wo wird gesagt, dass die Beiträge z.B. nur aus 2015 angezeigt werden?

Danke!

Offline

#7 04. Juli 2017 16:40

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: News - Nach Erstellungsjahren sortieren

Ähmm, das war aber nicht deine Frage big_smile ...

brandy schrieb:

Ich möchte die News nach Jahren sortiert ausgeben - ist das möglich?

Smarty-basiert müsste es so aussehen

{$jahr = '2017'}
{foreach from=$items item=entry}
{if $entry->postdate|date_format:'%Y' == $jahr}

.... Rest des News Templates .....

{/if}
{/foreach}

wobei die erste Zeile das auszugebende Jahr festlegt.

Ist performance seitig natürlich alles andere als optimal. Besser wäre, wenn man das Jahr gleich direkt bei der Datenbankabfrage hinterlegen könnte ... aber das wäre dann ein Fall für die Bastelstube wink.

Offline

#8 24. Juli 2017 09:16

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 799
Webseite

Re: News - Nach Erstellungsjahren sortieren

Danke, hört sich schlüssig an - so eingebaut ändert sich an meiner Ausgabe aber nichts?

{if $pagecount > 1}
<div class="row">
<div class="small-12 columns">
<ul class="pagination">
	<li class="arrow{if !isset($prevurl)} unavailable{/if}">
		<a href="{$prevurl|default:"#"}">&laquo;</a>
	</li>
	
	{if $pagenumber <= 1}
		{$page_link=$nexturl}
	{else}
		{$page_link=$prevurl}
	{/if}
	
	{section name="pages" start=0 loop=$pagecount}
		{if $smarty.section.pages.iteration == $pagenumber}
			{$css_class=' class="current"'}
			{$href="#"}
		{else}
			{$css_class=""}
			{$href=$page_link|regex_replace:"/pagenumber=\d+/":"pagenumber=`$smarty.section.pages.iteration`"}
		{/if}
		
		<li{$css_class}>
			<a href="{$href}">{$smarty.section.pages.iteration}</a>
		</li>
		
	{/section}
	
	<li class="arrow{if !isset($nexturl)} unavailable{/if}">
		<a href="{$nexturl|default:"#"}">&raquo;</a>
	</li>
</ul>
</div>
</div>
{/if}

<p><p/>
{$jahr = '2016'}
{foreach from=$items item=entry}
{if $entry->postdate|date_format:'%Y' == $jahr}

<!--{foreach from=$items item=entry}-->
<div class="NewsSummary row">

{if isset($entry->extra)}
<div class="small-8 columns">
{else}
<div class="small-12 columns">
{/if}
{if $entry->postdate}
	<div class="NewsSummaryPostdate">
		{$entry->postdate|cms_date_format}
	</div>
{/if}

<div class="NewsSummaryLink">
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}">{$entry->title|cms_escape}</a>
</div>

{if $entry->summary}
	<div class="NewsSummarySummary">
		{$entry->summary|strip_tags}
	</div>
<br/>
	<div class="NewsSummaryMorelink">
		[{$entry->morelink}]
	</div>

{else if $entry->content}

	<div class="NewsSummaryContent">
		{$entry->content}
	</div>
{/if}

{if isset($entry->extra)}
</div>
<div class="small-4 columns">
    <div class="NewsSummaryExtra Gallery">
       {Gallery dir=$entry->extra template="db-one-image" number="1"}
    </div>
</div>
{else}
</div>
{/if}
</div>
<hr/>
<!--{/foreach}-->

{/if}
{/foreach}

{if $pagecount > 1}

<ul class="pagination">
	<li class="arrow{if !isset($prevurl)} unavailable{/if}">
		<a href="{$prevurl|default:"#"}">&laquo;</a>
	</li>
	
	{if $pagenumber <= 1}
		{$page_link=$nexturl}
	{else}
		{$page_link=$prevurl}
	{/if}
	
	{section name="pages" start=0 loop=$pagecount}
		{if $smarty.section.pages.iteration == $pagenumber}
			{$css_class=' class="current"'}
			{$href="#"}
		{else}
			{$css_class=""}
			{$href=$page_link|regex_replace:"/pagenumber=\d+/":"pagenumber=`$smarty.section.pages.iteration`"}
		{/if}
		
		<li{$css_class}>
			<a href="{$href}">{$smarty.section.pages.iteration}</a>
		</li>
		
	{/section}
	
	<li class="arrow{if !isset($nexturl)} unavailable{/if}">
		<a href="{$nexturl|default:"#"}">&raquo;</a>
	</li>
</ul>

{/if}
<!-- End News Display Template -->

Offline

#9 06. August 2017 16:30

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.017
Webseite

Re: News - Nach Erstellungsjahren sortieren

Das heisst, dir wird immer noch alles ausgegeben?

Offline

#10 07. August 2017 20:39

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 799
Webseite

Re: News - Nach Erstellungsjahren sortieren

Ja, leider!

Offline

#11 19. Juni 2018 12:17

stefanauskoeln
probiert CMS/ms aus
Registriert: 16. April 2012
Beiträge: 59

Re: News - Nach Erstellungsjahren sortieren

sorry, arbeite noch dran ;-)

Beitrag geändert von stefanauskoeln (19. Juni 2018 13:11)

Offline