Via de de volgende link werd ik op het idee gebracht om de nieuws items per jaar te kunnen laten zien:
http://forum.cmsmadesimple.org/index.php/topic,35465.0.html
Om dit werkend te krijgen, heb ik de volgende aanpassingen/instellingen gedaan:
- Een Summary Template gemaakt, genaamd: summaryperiodtemplate. Deze bevat de volgende code:
Code: Select all
{if !isset($news_start_period)}
{assign var=news_start_period value='1900-01-01'}
{/if}
{if !isset($news_end_period)}
{assign var=news_end_period value='2038-12-31'}
{/if}
{if isset($currentdate)}
{assign var=news_start_period value=$currentdate}
{/if}
<div id="NewsPostDetailPrintLink">
{$entry->printlink}
</div>
{foreach from=$items item=entry}
{if ($entry->postdate|date_format:'%F' >= $news_start_period|date_format:'%F') && ($entry->postdate|date_format:'%F' <= $news_end_period|date_format:'%F') }
<h3>{$entry->postdate|date_format:"%d/%m/%Y"} - {$entry->title}</h3>
{eval var=$entry->content}
{/if}
{/foreach}
Code: Select all
{* Select your news_start_date formatted as yyyy-mm-dd *} {assign var='news_start_period' value='2009-01-01'} {* Select your news_end_date formatted as yyyy-mm-dd *} {assign var='news_end_period' value='2009-12-31'} {* Call news module *} {news category="logboek" summarytemplate="summaryperiodtemplate" detailtemplate="_dflt" }
Dit vond ik niet handig en bedacht om dit met Formbuilder te doen, door een drop down te laten zien met jaartallen en daar vervolgens een keuze uit te maken. Het jaartal zou dan als variabele naar een UDT moeten worden doorgegeven. Met veel ondersteuning van Calimer0 is het uiteindelijk niet gelukt om dit met Formbuilder te doen. Hierop deed Calimer) de suggestie om de volgende UDT te maken, genaamd 'archiveyear' met de volgende code:
Code: Select all
//Execute some smarty code to make the archive link
global $gCms;
$smarty = &$gCms->GetSmarty();
$smarty_data = "{cms_selflink href='lbjaar}"; //this is the archive link
$smarty->_compile_source('temporary template', $smarty_data, $_compiled );
@ob_start();
$smarty->_eval('?>' . $_compiled);
$_contents = @ob_get_contents();
@ob_end_clean();
$archivelink = $_contents;
//Set the first year of archives:
$firstyear=2006;
//Set some variables
$thisyear=date('Y');
//$i=$firstyear;
$i=$thisyear;
echo '<form id="selectyear" method="get" action="' .$archivelink. '" enctype="multipart/form-data"> ';
echo ' <div class="formbuilderform"> ';
echo '<div class="required">';
echo '<label for="year">';
echo 'Logboek van* ';
echo '</label>';
echo '<select id="year" name="year">';
echo '<option value="" selected="selected"> ';
echo ' Selecteer een jaar: ';
echo '</option>';
while ($i >= $firstyear) {
echo '<option value="' .$i. '">' .$i. '</option>';
--$i;
}
echo '</select> ';
echo '</div> ';
echo '<div class="submit">';
echo '<input value="Verstuur" type="submit" /> ';
echo '</div> ';
echo '</div> ';
echo '</form> ';
if (!isset($_GET['year']) || $_GET['year'] == "") {
$archiveyear=date('Y');
}
else {
$archiveyear=$_GET['year'];
}
$news_start_period="{$archiveyear}/01/01";
$news_end_period="{$archiveyear}/12/31";
$smarty->assign('archiveyear', $archiveyear);
$smarty->assign('news_start_period', $news_start_period);
$smarty->assign('news_end_period', $news_end_period);
Code: Select all
<h2>{title}</h2>
<br />{archiveyear} {news category="logboek" summarytemplate="summaryperiodtemplate" detailtemplate="_dflt" }
De site is voorzien van pretty url's.
Hoop dat dit voor iemand bruikbaar is en ik ben blij met de ondersteuning die ik via het forum heb mogen krijgen hierbij!
Gregor