Benutzerdefinierte Tags für das News-Modul

Seiten-Umbruch/-Nummerierung

HINWEIS: Die Seitennummerierung ist im News-Modul der CMSms-Version 1.1 bereits standardmäßig enthalten Die folgenden Informationen sind nur für Anwender mit älteren Versionen interessant.

Mit diesem benutzerdefinierten Tag können Sie am Ende einer News-Seite Links in der Art "Ältere/Neuere Nachrichten" oder auch Links zur Seitennummerierung anzeigen lassen. Für den Einsatz dieses Tags müssen Sie eine Seite vom Inhaltstyp "Content" erstellen und dort das News-Modul mit den entsprechenden Parametern aufrufen.

Wenn Sie den Inhaltstyp der Seite auf "News" setzen, wird der Tag NICHT funktionieren.

Gehen Sie wie folgt vor:

1. Erstellen Sie einen benutzerdefinierten Tag mit dem Namen "newsindex" und folgendem Inhalt:

global $gCms, $number;

$start  = ($_REQUEST['start'])  ? $_REQUEST['start']  : $params['start'];
$number = ($_REQUEST['number']) ? $_REQUEST['number'] : $params['number'];
$older  = $params['older'] ? $params['older'] : 'Older stories';
$newer  = $params['newer'] ? $params['newer'] : 'Newer stories';

/*Get URL for 1st page*/
$hm =& $gCms->GetHierarchyManager();
$firstpage = $gCms->variables['content_id'];
$curnode = &$hm->getNodeById($firstpage);
$curcontent =& $curnode->getContent();

/* Count the number of articles we have in total */
$db = &$gCms->db;
$tables=cms_db_prefix().'module_news';
$cond='';
if (isset($params['count_expired'])) {
	switch ($params['count_expired']) {
		case 'true':
			$cmpr='<';
			break;
		case 'false':
			$cmpr='>';
			break;
		default:
			return 'Wrong argument in "count_expired"';
	}
	$cond='(end_time '.$cmpr.' NOW() OR end_time IS NULL )';
}
if (isset($params['category'])) {
	$tables.=', '.cms_db_prefix().'module_news_categories';
	if ($cond!='') $cond.=" AND ";
	$cond.="(news_category_name LIKE '".$params['category']."') AND (".cms_db_prefix()."module_news_categories.news_category_id =	".cms_db_prefix()."module_news.news_category_id)";
}
if($cond!='') $cond='WHERE ('.$cond.')';
$query = 'SELECT COUNT(news_id) FROM '.$tables.' '.$cond;
$newscount = &$db->GetOne($query);

/* utility to make a URL */
function join_uri($middle) {
	global $gCms, $number;
	return 'index.php?page=' . $gCms->variables['page_name'] . '&start=' . $middle . '&number=' . $number;
}

/* Create the Next and Previous URLS */
$older_uri = join_uri($start + $number);
$newer_uri = (($_REQUEST['start'] - $params['number']) == $params['start'])
   ? $curcontent->GetURL()
   : join_uri($start - $number);

/* Make the page links */
$newscrumbs='';
$page = 0;
for( $i=0; $i <= $newscount; $i += $number ) {
	$page++;
	if( $i != $start ) {
		$newscrumbs .= ($i == $params['start'])
			? '<a href="'.$curcontent->GetURL().'">'.$page.'</a>'
			: '<a href="'.join_uri($i).'">'.$page.'</a>';
	} else {
		$newscrumbs .= $page;
	}
	if( $i <= $newscount && isset($params['delimiter'] ) ) {
		$newscrumbs.=$params['delimiter'];
	}
}

$smarty->assign('news_start', $start);
$smarty->assign('news_number', $number);
$smarty->assign('news_count',$newscount);
$smarty->assign('news_newer_link', ($start > 0)
   ? "<a href=\"$newer_uri\">$newer</a>"
   : ''
);
$smarty->assign('news_older_link', ($start + $number < $newscount)
   ? "<a href=\"$older_uri\">$older</a>"
   : ''
);
$smarty->assign('news_crumbs',$newscrumbs);


Dieser Tag definiert sechs Smarty-Variablen, auf die Sie in Ihrer Seite zugreifen können.

2. Erstellen Sie eine Seite für Ihre News. Der Inhaltstyp der Seite MUSS 'Content' sein.

3. Fügen Sie den benutzerdefinierten Tag wie folgt in den Inhalt Ihrer Seite ein:

{newsindex number='5' start='0' category='Allgemeines' count_expired='true' delimiter='|' older='Ältere Nachrichten' newer='Neuere Nachrichten'}

Parameter:

  • start: Die Nummer des Artikels, der als erster auf der Seite angezeigt werden soll
  • number: Die Anzahl der angezeigten Artikel pro Seite
  • category: Legt die Kategorie der angezeigten Artikel fest; wird dies nicht festgelegt, werden die Artikel aller Kategorien angezeigt
  • count_expired: Berücksichtigt auch die "verfallenen" Artikel in der Seitennummerierung (verwendetn Sie 'true' oder 'false')
  • delimiter: Definiert den Trenner für die Seitennummerierungs-Links, zum Beispiel ' | ' in 1 | 2 | 3
  • older: Der zu verwendende Text für den Link auf die vorherige Seite
  • newer: Der zu verwendende text für den Link auf die nächste Seite


Dies sind die sechs Smarty-Variablen:

  • $news_start: Die Nummer des Artikels, mit dem die aktuelle Seite beginnt
  • $news_number: die Anzahl der Artikel auf der aktuellen Seite
  • $news_newer_link: Ein Link auf die nächste Seite (gibt es keine nächste Seite, wird auch kein Link angezeigt)
  • $news_older_link: Ein Link auf die vorherige Seite (gibt es keine vorherige Seite, wird auch kein Link angezeigt)
  • $news_count: die Anzahl aller Artikel, die angezeigt werden können
  • $news_crumbs: eine Liste der (verlinkten) Seiten, separiert durch den festgelegten Trenner


4. Fügen Sie Ihrer Seite jetzt unter Verwendung von zwei Variablen den Aufruf des News-Moduls hinzu:

{news number=$news_number start=$news_start category='Allgemeines' showarchive='true'}

Bitte beachten Sie, dass das News-Modul erst NACH Tag aufgerufen werden darf.

5. Zum Abschluss erstellen Sie die Links zum Vor- und Zurückblättern sowie die Seitennummerierungs-Links:

{$news_newer_link} {$news_crumbs} {$news_older_link}

Zusammengefasst müssen Sie Ihrer Seite folgendes hinzufügen:

{newsindex number='5' start='0' category='Allgemeines' count_expired='true' delimiter='|' older='Ältere Artikel' newer='Neuere Artikel'}
{news number=$news_number start=$news_start category='Allgemeines' showarchive='true'}
{$news_newer_link} {$news_crumbs} {$news_older_link}

Im Ergebnis werden nun auf Ihrer Seite die archivierten Artikel mit Seitenumbruch und -nummerierung angezeigt.
This page in: English - Deutsch - Español - Français - Italiano - Lietuvių - Nederlands - Norsk - Polski - Русский - Svenska - Tiếng Việt - عربي - 日本語 简体中文

User Handbook/Admin Panel/Content/News/User Defined Tags/de

From CMSMS

Arvixe - A CMSMS Partner