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: 707
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.815
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: 707
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: 707
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.815
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: 707
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

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.879
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.


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#8 24. Juli 2017 09:16

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 707
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

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.879
Webseite

Re: News - Nach Erstellungsjahren sortieren

Das heisst, dir wird immer noch alles ausgegeben?


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMS/ms
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#10 07. August 2017 20:39

brandy
Server-Pate
Registriert: 05. Juni 2011
Beiträge: 707
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: 54

Re: News - Nach Erstellungsjahren sortieren

sorry, arbeite noch dran ;-)

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

Offline