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: 675
Webseite

Re:

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.807
Webseite

Re:

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, Revisions

Offline

#3 21. Juni 2017 08:30

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

Re:

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: 675
Webseite

Re:

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.807
Webseite

Re:

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, Revisions

Offline

#6 30. Juni 2017 09:17

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

Re:

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.741
Webseite

Re:

Ä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 CMSMS
---
„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: 675
Webseite

Re:

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.741
Webseite

Re:

Das heisst, dir wird immer noch alles ausgegeben?


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„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: 675
Webseite

Re:

Ja, leider!

Offline

Fußzeile des Forums

Powered by FluxBB