ich nutze eine Artikelliste Code:
Code: Alles auswählen
<?php
// Includes
//removed functions.include.UTF8decoding.php, as was only needed for PHP <= 4.
//removed older versions of data replacement and php check, as CON 4.9 is not running with php lower than 5.2.3
//moved all include-files to module/php folder which makes transfering this module easier
cInclude('module', 'class.datetimereplacelang.php');
cInclude('module', 'functions.alr.php');
//in case thumbs are not displayed properly, this might help:
putenv("MAGICK_THREAD_LIMIT=1");
// initialize
$tpl = cSmartyFrontend::getInstance();
$articleList = array();
$listObj = new stdClass();
// Prepare module info. Needed later to check if defined default smarty template is a real file 
$mod = new cApiModule($cCurrentModule);
$tplpath = $cfgClient[$client]["path"]["frontend"]."data/modules/".$mod->get("alias")."/template/";
$bDebug     = false;
$iDataStart = 1000; // Startwert fuer dynamisch generierte CMS_VAR Elemente !!!Muss im Input gleich sein!!!
$lCount     = 0;
// Base settings
/**
* Base information:
* $aSettings['ArtListHeadline']:           Value for article list headline
* $aSettings['Elements']:                  Number of expected, additional elements from each article
* $aSettings['ArticlePerPage']:            Number of articles per page (0: show all)
* $aSettings['k'.$i]['ElementType']:       Per Element: Type of Element: Text, Image or ExtractedImage
* $aSettings['k'.$i]['ElementWidth']:      Per Element: Text length or image width (-> recycling ...)
* $aSettings['k'.$i]['ElementHeight']:     Per Element: Image width
* $aSettings['k'.$i]['DontStripTags']      Per Element: Strip tags or not
* $aSettings['k'.$i]['ElementAllowedTags'] Per Element: Allowed tags
*/
unset ($aSettings);
$aSettings = array();
$oLang = new cApiLanguage();
$oLang->loadByPrimaryKey($lang);
$aSettings['DateLanguage'] = $oLang->getProperty("dateformat", "locale");
$aSettings['ShowModul']                  = ( "CMS_VALUE[0]" == 'true' ) ? true : false ;
$aSettings['Category']                   = str_replace('cat_', '', "CMS_VALUE[100]" );
$aSettings['Category']                   = ( $aSettings['Category'] <= 0 )  ? 0 : $aSettings['Category'];
$aSettings['AddCats']                    = str_replace('cat_','', "CMS_VALUE[106]");
$aSettings['CatTypeSel']                 = ( "CMS_VALUE[105]" == '' ||  ($aSettings['AddCats'] == '' && "CMS_VALUE[105]" == 'selected') )  ? 'none' : "CMS_VALUE[105]"; 
$aSettings['ArticleCount']               = ( "CMS_VALUE[110]" < 0)     ? 0 : "CMS_VALUE[110]";
$aSettings['SortBy']                     = ( "CMS_VALUE[115]" == '' )     ? "catart.idart" : "CMS_VALUE[115]";
$aSettings['SortDir']                    = "CMS_VALUE[116]";
$aSettings['ShowStart']                  = ( "CMS_VALUE[120]" == 'startinclude' ) ? true : false ;
$aSettings['ShowOnlyStart']              = ( "CMS_VALUE[120]" == 'startonly' ) ? true : false ;
$aSettings['ShowCurrentArticle']         = ( "CMS_VALUE[123]" == 'true' ) ? true : false ;
$aSettings['ArtListHeadline']            = "CMS_VALUE[301]";
$aSettings['DefaultTextArticle']         = str_replace('art_', '', "CMS_VALUE[306]");
$aSettings['DefaultTextFree']            = "CMS_VALUE[307]";
$aSettings['OverviewLink']               = "CMS_VALUE[311]";
$aSettings['OverviewLinkText']           = ( "CMS_VALUE[312]" == "") ? mi18n("Link to overview") : "CMS_VALUE[312]" ;
$aSettings['DateFormat']                 = ( "CMS_VALUE[316]" == "") ? "d.m" : "CMS_VALUE[316]" ;
$aSettings['DateChoice']                  = "CMS_VALUE[317]";
$aSettings['PaginationType']             = "CMS_VALUE[330]";
$aSettings['ArticlePerPage']             = ( $aSettings['PaginationType'] != ''  && "CMS_VALUE[331]" >= 2)  ? "CMS_VALUE[331]" : 1;
$aSettings['PaginationType05MaxPages']   = ( !is_numeric("CMS_VALUE[332]") || "CMS_VALUE[332]" == '' || "CMS_VALUE[332]" <= 3 ) ? 3 : "CMS_VALUE[332]";
$aSettings['UseUTF8Decoding']            = ( "CMS_VALUE[340]" == 'true' ) ? true : false ;
$aSettings['HeadlineIdentifier']         = "CMS_VALUE[510]";
$aSettings['HeadlineLength']             = ( !is_numeric("CMS_VALUE[511]") || "CMS_VALUE[511]" < 0) ? 0 : "CMS_VALUE[511]"; 
$aSettings['UseSummary']                 = ( "CMS_VALUE[516]" == 'true' ) ? true : false ;
$aSettings['SummaryWidth']               = ( !is_numeric("CMS_VALUE[515]") || "CMS_VALUE[515]" < 0)     ? 0 : "CMS_VALUE[515]";
$aSettings['UsePageTitle']               = ( "CMS_VALUE[521]" == 'true' ) ? true : false ;
$aSettings['PageTitleWidth']             = ( !is_numeric("CMS_VALUE[520]") || "CMS_VALUE[520]" < 0) ? 0 : "CMS_VALUE[520]";
$aSettings['Elements']                   = ( !is_numeric("CMS_VALUE[525]") || "CMS_VALUE[525]" < 0) ? 0 : "CMS_VALUE[525]";
$aSettings['CurrentPage']                = ( !is_numeric($_REQUEST['page']) || !isset($_REQUEST['page']) ) ? 1 : $_REQUEST['page'];
if ( $aSettings['ShowOnlyStart'] )  $aSettings['ShowStart']  = true; 
$aSettings['Template']                   = "CMS_VALUE[125]";
if ( $aSettings['ShowModul']  ) {
    
    // Client Cache loeschen um auf jeden Fall alle Aenderungen an Inhalten zu beruecksichtigen
    // Es wird explizit nur der content-Ordner geloescht um zu verhindern, dass es Fehler bei der Darstellung von Bildern gibt
    cInclude('classes', 'class.purge.php');
    $oPurge = new cSystemPurge($db, $cfg, $cfgClient);
    $oPurge->clearClientCache($iClientId, 'cache/content/');
    
	// Detail settings
    if ($aSettings['Elements'] > 0) {
        for ($i = 1; $i <= $aSettings['Elements']; $i++) {
	    $iElementType           = $iDataStart   + ($i * 10);
	    $iElementIdentifier     = $iElementType + 1;
	    $iElementWidth          = $iElementType + 2;
	    $iElementHeight         = $iElementType + 3;
	    $iElementDontStripTags  = $iElementType + 3;
	    $iElementAllowedTags    = $iElementType + 4;
	    $aSettings['k'.$i] = array();
	    $aSettings['k'.$i]['ElementType']        = "CMS_VALUE[$iElementType]"; // Text, Image, ExtractedImage, FixedDate
	    $aSettings['k'.$i]['Identifier']         = "CMS_VALUE[$iElementIdentifier]";
		// Der obige Wert muss hier nochmal umgebogen werden, weil im Inputbereich der QueryString in der functions.input.helpr.gw.php leider geändert werden musste.
		$aSettings['k'.$i]['Identifier']         = str_replace("tblDataidtype", "tblData.idtype = '", $aSettings['k'.$i]['Identifier']);
		$aSettings['k'.$i]['Identifier']         = str_replace("tblDatatypeid", "' AND tblData.typeid = '", $aSettings['k'.$i]['Identifier']);
		$aSettings['k'.$i]['Identifier']         = $aSettings['k'.$i]['Identifier']."'";
	    $aSettings['k'.$i]['ElementWidth']       = "CMS_VALUE[$iElementWidth]";       // Textlength or ImageWidth
	    $aSettings['k'.$i]['ElementHeight']      = "CMS_VALUE[$iElementHeight]";
	    $aSettings['k'.$i]['DontStripTags']      = ("CMS_VALUE[$iElementDontStripTags]" == 'true' ) ? true : false ;
	    $aSettings['k'.$i]['ElementAllowedTags'] = ("CMS_VALUE[$iElementAllowedTags]" != '') ? '\''."CMS_VALUE[$iElementAllowedTags]".'\'' : '';
	    // Check detail settings
	    if ($aSettings['k'.$i]['ElementType'] == '') $aSettings['k'.$i]['ElementType'] == 'Text';
	    if ($aSettings['k'.$i]['ElementType'] == 'Text') {
		$aSettings['ElementHeight'] = 0;
		if (!is_numeric($aSettings['k'.$i]['ElementWidth']) || $aSettings['k'.$i]['ElementWidth'] < 0) {
		    $aSettings['k'.$i]['ElementWidth'] = 0;
		}
	    } elseif (!is_numeric($aSettings['k'.$i]['ElementWidth']) || $aSettings['k'.$i]['ElementWidth'] <= 0 ||
		    !is_numeric($aSettings['k'.$i]['ElementHeight']) || $aSettings['k'.$i]['ElementHeight'] <= 0) {
		$aSettings['k'.$i]['ElementWidth'] = 0;
		$aSettings['k'.$i]['ElementHeight'] = 0;
	    }
	    if (strlen($aSettings['Identifier']) > 50) $aSettings['Identifier'] = '';
	    
        } // end for
    }
    unset ($iDataStart);
    unset ($iElementType);
    unset ($iElementIdentifier);
    unset ($iElementWidth);
    unset ($iElementHeight);
    unset ($iElementDontStripTags);
    unset ($iElementAllowedTags);
    //if ($aSettings['Category'] !== '0' && $aSettings['HeadlineIdentifier'] !== '') {
   if ($aSettings['Category'] !== '0') {
	   	   
	   $db2 = cRegistry::getDb();
        // Specifying search categories
        $sSelCats = '"'.$aSettings['Category'].'"';
        // Adding categories "below" primary category
        switch ($aSettings['CatTypeSel']) {
            case 'below':
                $lCatLevel = -1;
                $sql  = 'SELECT'."\n".
                        '   a.idcat AS idcat,'."\n".
                        '   b.level AS level'."\n".
                        'FROM'."\n".
                        '   '.$cfg['tab']['cat'].' a,'."\n".
                        '   '.$cfg['tab']['cat_tree'].' b'."\n".
                        'WHERE'."\n".
                        '   a.idcat = b.idcat'."\n".
                        'ORDER BY'."\n".
                        '   b.idtree';
                $db2->query($sql);
                while($db2->nextRecord()) {
                    if ($db2->f('idcat') == $aSettings['Category'])
                        $lCatLevel = $db2->f('level');
                    elseif ($lCatLevel > -1 && $db2->f('level') > $lCatLevel)
                        $sSelCats .= ',"'.$db2->f('idcat').'"';
                    elseif ($db2->f('level') <= $lCatLevel)
                        break;
                } // end while
                break;
            case 'select':
                $aCats = explode(",", $aSettings["AddCats"] ); // http://forum.contenido.org/viewtopic.php?p=149395#p149395
                foreach ($aCats as $value)
                    if (is_numeric($value))
                        $sSelCats .= ',"'.$value.'"';
                break;
            default:
        } // end switch
	
	// prepare alternative inputs:
	if ($aSettings['HeadlineIdentifier']  != '' ) {
		$aSettings['HeadlineIdentifier'] = str_replace("tblDataidtype", "tblData.idtype = '", $aSettings['HeadlineIdentifier']);
		$aSettings['HeadlineIdentifier'] = str_replace("tblDatatypeid", "' AND tblData.typeid = '", $aSettings['HeadlineIdentifier']);
		
		$addsql01 = '    tblData.value AS headline,'."\n";
		$addsql02 = $cfg['tab']['content'].' AS tblData,'."\n";
		$addsql04 = 'AND '."\n".'    tblData.idartlang != catlang.startidartlang ';
		$addsql05 = 'AND '."\n".'    tblData.idartlang = catlang.startidartlang ';
		
	}
		
        $sql =  'SELECT'."\n".
                '    artlang.author AS author,'."\n".
                $addsql01.
                '    artlang.pagetitle AS pagetitle,'."\n".
                '    artlang.summary AS summary,'."\n".
                '    artlang.idart AS idart,'."\n".
                '    artlang.idart AS idartlang,'."\n".
                '    artlang.lastmodified AS lastmodified,'."\n".
                '    artlang.modifiedby AS autor,'."\n".
                '    artlang.created AS created,'."\n".
                '    artlang.published AS published,'."\n".
                '    artlang.idartlang AS idartlang,'."\n".
                '    catlang.name AS category,'."\n".
                '    catlang.startidartlang AS startid,'."\n".
                '    catart.is_start AS isstart,'."\n".
                '    catart.idcat AS idcat,'."\n".
                '    catart.idcatart AS idcatart'."\n".
                'FROM'."\n".
                '    '.$cfg['tab']['cat_art'].' AS catart,'."\n".
                '    '.$cfg['tab']['art_lang'].' AS artlang,'."\n".
                $addsql02.
                '    '.$cfg['tab']['cat_lang'].' AS catlang'."\n".
                'WHERE'."\n".
                '    catart.idcat IN ('.$sSelCats.') AND'."\n".
                '    artlang.idlang = '.$lang.' AND'."\n".
                //$addsql03.
                '    catlang.idlang = artlang.idlang AND'."\n".
                '    catlang.idcat = catart.idcat AND'."\n".
                '    artlang.idart = catart.idart AND'."\n".
                '    artlang.online = 1 ';
        if ( !$aSettings['ShowStart'] )         $sql .=  'AND '."\n".'    artlang.idartlang != catlang.startidartlang ' . $addsql04 ;
        if ( $aSettings['ShowOnlyStart'] )      $sql .=  'AND '."\n".'    artlang.idartlang = catlang.startidartlang '  .$addsql05  ;
        if ( $aSettings['ShowCurrentArticle'] )  $sql .= 'AND'."\n".'    artlang.idart <> ' . $idart . ' ';
	if ($aSettings['HeadlineIdentifier']  != '' ) {
		$sql .=  'AND    tblData.idartlang = artlang.idartlang '."\n";
		$sql .=  'AND '."\n".$aSettings['HeadlineIdentifier']."'";
	}
        // Sort by
        $sql .= "\n".'ORDER BY'."\n".
                '    '.$aSettings['SortBy']."\n".
                '    '.$aSettings['SortDir']."\n";
        // LIMIT
        if ($aSettings['ArticleCount'] > 0) $sql .= 'LIMIT 0, '.$aSettings['ArticleCount'];
		
        if ($bDebug) {
            echo '<pre>'.$sql.'</pre>', chr(10);
        }
        // execute query
        $db2->query($sql);
	
        $lCount = $db2->numRows();
        if ($lCount > 0) {
            if (!is_object($db3)) $db3 = cRegistry::getDb();
            if (!is_object($db4)) $db4 = cRegistry::getDb();
            if (!is_object($db5)) $db5 = cRegistry::getDb();
	    
	    //falsche GET-Werte für "page" auf 0 setzen, Kurzcheck:
	    if ( $aSettings['CurrentPage'] > ceil( $lCount / $aSettings['ArticlePerPage'] )  ) $aSettings['CurrentPage'] = 1;
            if ($aSettings['ArticlePerPage'] > 0 && $aSettings['PaginationType'] != '' ) {
                $lStartCount = ($aSettings['CurrentPage'] - 1) * $aSettings['ArticlePerPage'];
                $lEndCount   = (($aSettings['CurrentPage'] - 1) * $aSettings['ArticlePerPage']) + $aSettings['ArticlePerPage'];
                if ($lEndCount > $lCount) $lEndCount = $lCount;
            } else {
                $lStartCount = 0;
                $lEndCount   = $lCount;
            }
            $lRow = 0;
            $i    = 0; 	    
    
            while ($db2->nextRecord()) 
	{
		if ($lRow >= $lStartCount && $lRow < $lEndCount)
		{
			$article = array();
			//generate first values
			$article['number']     = $lRow+1 ; 
			$article['category']   = urldecode($db2->f('category')); 
                        $article['categoryid'] = urldecode($db2->f('idcat')); 
			//article link, relative to get to the listed article
                        if ($db2->f('startid') == $db2->f('idartlang') || $db2->f('isstart')) {
                            $aParams = array('lang' => $lang, 'idcat' => $db2->f('idcat'));
                        } else {
                            $aParams = array('lang' => $lang, 'idcat' => $db2->f('idcat'), 'idart' => $db2->f('idart'));
                        }
                        $article['link'] = cUri::getInstance()->buildRedirect($aParams);
                        // new: create link to category in which article is located in
                        $aParams = array('lang' => $lang, 'idcat' => $db2->f('idcat'));
                        $article['linkcat'] = cUri::getInstance()->buildRedirect($aParams);
			//Generate ALL date values possible and store them in array
			$oDate = new DateTimeReplaceLang( $db2->f('lastmodified') );
			$article['lastmodified_long']   = $oDate->format($aSettings['DateFormat'], $aSettings['DateLanguage'], 'long');
			$article['lastmodified_short']  = $oDate->format($aSettings['DateFormat'], $aSettings['DateLanguage'], 'short');
			$oDate = new DateTimeReplaceLang( $db2->f('created') );
			$article['created_long']   = $oDate->format($aSettings['DateFormat'], $aSettings['DateLanguage'], 'long');
			$article['created_short']  = $oDate->format($aSettings['DateFormat'], $aSettings['DateLanguage'], 'short');
			
			$oDate = new DateTimeReplaceLang( $db2->f('published') );
			$article['published_long']  = $oDate->format($aSettings['DateFormat'], $aSettings['DateLanguage'], 'long');
			$article['published_short'] = $oDate->format($aSettings['DateFormat'], $aSettings['DateLanguage'], 'short');
			
			$article['published'] = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y') ? $article['published_long'] : $article['published_short'];			
			$article['created'] = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y') ? $article['created_long'] : $article['created_short'];
			$article['lastmodified'] = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y') ? $article['lastmodified'] : $article['lastmodified'];
			$article['date']  = ($aSettings['DateChoice'] != '') ? $article[$aSettings['DateChoice']]  : ''; 
			//get author's real name
			$author = new cApiUser();
			$author->loadUserByUsername( $db2->f('author'));
			$article["author"] = text2utf8(  $author->getRealName( ),  false, $aSettings['UseUTF8Decoding']  );			
			
			// Generate Summary
			$article['summary_full']  = text2utf8( $db2->f('summary') , false , $aSettings['UseUTF8Decoding'] );
			$article['summary_trimmed']  = capiStrTrimAfterWord($article['summary_full'], $aSettings['SummaryWidth']).'...';
			$article['summary']  = ($aSettings['SummaryWidth'] > 0 && strlen($article['summary_full'] ) > $aSettings['SummaryWidth'] ) ? $article['summary_trimmed']  : $article['summary_full'] ;
                        // Generate pagetitle
			$article['pagetitle_full'] = text2utf8( $db2->f('pagetitle') , false , $aSettings['UseUTF8Decoding'] );
			$article['pagetitle_trimmed'] = capiStrTrimAfterWord($article['pagetitle_full'], $aSettings['PageTitleWidth']).'...';
                        $article['pagetitle'] = ($aSettings['PageTitleWidth'] > 0 && strlen($article['pagetitle_full'] ) > $aSettings['PageTitleWidth'] ) ? $article['pagetitle_trimmed'] : $article['pagetitle_full'] ;
                        // Generate headline
			$article['headline_full'] = text2utf8( $db2->f('headline') , false , $aSettings['UseUTF8Decoding'] );
			$article['headline_trimmed'] = capiStrTrimAfterWord($article['headline_full'], $aSettings['HeadlineLength']).'...';
			$article['headline']  = ($aSettings['HeadlineLength'] > 0 && strlen($article['headline_full'] ) > $aSettings['HeadlineLength']) ? $article['headline_trimmed'] : $article['headline_full'] ;
			// Replace headline with summary or page title if clicked
			if ( $aSettings['UseSummary'] ) $article['headline'] = $article['summary'] ;
			if ( $aSettings['UsePageTitle'] ) $article['headline'] = $article['pagetitle'] ;
		
			
                        //go through all chosen elements defined by user one by one
                        if ($aSettings['Elements'] > 0) {
                            $sql =  'SELECT'."\n".
                                    '    tblData.value AS value,'."\n".
                                    '    tblData.idtype AS idtype,'."\n".
                                    '    tblData.typeid AS typeid'."\n".
                                    'FROM'."\n".
                                    '    '.$cfg['tab']['cat_art'].' AS tblCatArt,'."\n".
                                    '    '.$cfg['tab']['art_lang'].' AS tblArtLang,'."\n".
                                    '    '.$cfg['tab']['content'].' AS tblData'."\n".
                                    'WHERE'."\n".
                                    '    tblData.idartlang = tblArtLang.idartlang AND'."\n".
                                    '    tblArtLang.idlang = "'.$lang.'" AND'."\n".
                                    '    tblArtLang.idart = tblCatArt.idart AND'."\n".
                                    '    tblCatArt.idcatart = "'.$db2->f('idcatart').'" AND'."\n".
                                    '    ('."\n";
                            $sql_items = '';
                            for ($k = 1; $k <= $aSettings['Elements']; $k++) {
                                if ($aSettings['k'.$k]['Identifier'] != '' && $aSettings['k'.$k]['Identifier'] != 'none') {
                                    if ($sql_items != '') {
                                        $sql_items .= ' OR'."\n".
                                                      '        ('.$aSettings['k'.$k]['Identifier'].')';
                                    } else {
                                        $sql_items = '        ('.$aSettings['k'.$k]['Identifier'].')';
                                    }
                                }
                            } // end for
                            $sql .= $sql_items."\n".'    )';
                            if ($bDebug) {
                                echo '<pre>'.$sql.'</pre>', chr(10);
                            }
                            // execute query
                            $db3->query($sql);
                            while ($db3->nextRecord()) {
                                $sTypeIdentifier = "tblData.idtype = '".$db3->f('idtype')."' AND tblData.typeid = '".$db3->f('typeid')."'";
                                /**
                                 * Note: The TypeIdentifier for one item may be the same as for another item.
                                 * Therefore, we are storing the content everywhere as needed
                                 */
                                for ($k = 1; $k <= $aSettings['Elements']; $k++) { 
                                    if ($sTypeIdentifier == $aSettings['k'.$k]['Identifier']) {
                                        switch (TRUE) {
                                            case ($aSettings['k'.$k]['ElementType'] == 'Image' || $aSettings['k'.$k]['ElementType'] == 'ExtractedImage'):
                                                $sql = ''; 
						
                                                if ($aSettings['k'.$k]['ElementType'] == 'Image') { 
                                                    $sql =  'SELECT idupl, dirname, filename FROM '.$cfg['tab']['upl']. ' WHERE idupl = "'.$db3->f('value').'"';
                                                    $db4->query($sql); 
                                                    if ($db4->nextRecord()) {
														$ChosenImage[path] = $db4->f('dirname');
														$ChosenImage[name] = $db4->f('filename');
														
													}
                                                } else {
                                                    $sTmpValue = urldecode($db3->f('value'));
													
													$doc=new DOMDocument();
													$doc->loadHTML($sTmpValue);
													$xpath = new DOMXPath($doc);
													$aImg=$xpath->evaluate('//img');
													$allImages = array();
													if($aImg->length>0) {
														foreach($aImg as $val)
														{
															$extractedImg = array();
															$uploadfilepath = explode("upload/",$val->getAttribute('src') );
															$extractedImg[name] = basename ( $uploadfilepath[1] );
															$uploaddirpath = explode($extractedImg[name], $uploadfilepath[1] );
															$extractedImg[path] = $uploaddirpath[0];
															array_push($allImages, $extractedImg);
														}
														$ChosenImage[name] = $allImages[0][name] ;
														$ChosenImage[path] = $allImages[0][path] ;
													}
                                                }
                                                if ($bDebug) {
                                                    echo '<pre>'.$sql.'</pre>';
                                                }
                                                // execute query and calculate image values
												$thisServerPath   = $cfgClient[$client]['upl']['path'].$ChosenImage[path].$ChosenImage[name];
												$image            = $cfgClient[$client]['upl']['htmlpath'].$ChosenImage[path].$ChosenImage[name];
												list ($width, $height, $type, $attr ) = getimagesize($thisServerPath);
												// print $k."elementwidth: ". $aSettings['k'.$k]['ElementWidth'] . "elementheight ".$aSettings['k'.$k]['ElementHeight'] ;
												if ($aSettings['k'.$k]['ElementWidth'] > 0 && $aSettings['k'.$k]['ElementHeight'] > 0 && file_exists($thisServerPath) &&
												($width > $aSettings['k'.$k]['ElementWidth'] || $height > $aSettings['k'.$k]['ElementHeight'])) {
												// Scale image
												$image = capiImgScale($thisServerPath, $aSettings['k'.$k]['ElementWidth'], $aSettings['k'.$k]['ElementHeight'], false, false, 10, true, 100, true);
												$image = str_replace($cfgClient[$client]['path']['htmlpath'], '', $image);
												// Get dimensions of the image
												list ($width, $height, $type, $attr ) = getimagesize($image);
												}
												$metatags = new cApiUploadMeta();
												$metatags->loadByUploadIdAndLanguageId( $db4->f('idupl'), $lang );
												$article[$k."_img"]       = $image;
												$article[$k."_img_src"]       = $cfgClient[$client]['upl']['htmlpath'].$db4->f('dirname').$db4->f('filename');
												$article[$k."_width"]          = $width;
												$article[$k."_height"]         = $height;
												$article[$k."_medianame"]      = $metatags->get("medianame");;
												$article[$k."_description"]    = $metatags->get("description");;
												$article[$k."_keywords"]       = $metatags->get("keywords");;
												$article[$k."_copyright"]      = $metatags->get("copyright");;
												$article[$k."_internal_description"] = $metatags->get("internal_description");;
							    
                                                break;
                                            case ($aSettings['k'.$k]['ElementType'] == 'FixedDate'):
						$dom = new domDocument;
						$dom->loadXML($db3->f('value'));
						$xml = simplexml_import_dom($dom);
						$date_Ymd  = date('Y-m-d',  (int)$xml->timestamp);
						$oDate = new DateTimeReplaceLang( $date_Ymd );
						$article[$k."article_long"]   = $oDate->format($aSettings['DateFormat'], $aSettings['DateLanguage'], 'long');
						$article[$k."article_short"]  = $oDate->format($aSettings['DateFormat'], $aSettings['DateLanguage'], 'short');
						$article[$k."_date"]   = ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y') ? $article[$k."article_long"] : $article[$k."article_short"];
						
                                                break;
                                            default:
						    
						$article[$k."_text_full"]         = urldecode($db3->f('value'));
						$article[$k."_text_strippedabit"] = str_replace('  ', ' ', preg_replace('/\r/s', '', preg_replace('/\n|\t/s', ' ', strip_tags(urldecode($db3->f('value')), $aSettings['k'.$k]['ElementAllowedTags']))));
						$article[$k."_text_stripped"]     = strip_tags($db3->f('value'));
                                                $article[$k."_text_cut"]          = capiStrTrimAfterWord($article[$k."_text_stripped"], $aSettings['k'.$k]['ElementWidth']).'...';
					
						if ( $aSettings['k'.$k]['DontStripTags'] ) {
							if ( strlen($aSettings['k'.$k]['ElementAllowedTags']) != 0 ) {
								$article[$k."_text"] = $article[$k."_text_strippedabit"];
							} else {
								$article[$k."_text"] = $article[$k."_text_full"];
							}
						} else {												
							if ( $aSettings['k'.$k]['ElementWidth'] > 0 && strlen($article[$k."_text_stripped"]) > $aSettings['k'.$k]['ElementWidth'] ) {
								$article[$k."_text"] = $article[$k."_text_cut"]; 
							} else {
								$article[$k."_text"] = $article[$k."_text_stripped"];
							}						
						}
						$article[$k."_text"] = text2utf8( $article[$k."_text"] , false , $aSettings['UseUTF8Decoding'] );
						// special customer request. extracts <h3>-tags from news that are used as headlines
						$anfang = strpos($article[$k."_text_full"] ,"<h3>")+4;
						$ende   = strpos($article[$k."_text_full"] ,"</h3>");
						$num    = ($ende - $anfang);
						$article[$k."_textstolzenberger"] = substr($article[$k."_text_full"], $anfang, $num);
                                        } // end switch
                                    } // end if ($sTypeIdentifier == $aSettings['k'.$k]['Identifier'])
                                } // end for
				
                            } // end while
                        }
                        $i++;
		//add this article to our main array
		array_push($articleList, $article);			
                    }
                    elseif ($lRow == $lEndCount) {
                        break;
                    }
                    $lRow++;	
		
            } // end while
            // Clearing memory
            unset ($db2);
            unset ($db3);
            unset ($db4);
            unset ($sql);
            unset ($lStartIDArtLang);
            unset ($lStartCount);
            unset ($lEndCount);
            
            /**
             * Page browsing
             * Hint: Number of max available records: $lCount
             * Number of pages: ceil($lCount / $aSettings['ArticlePerPage'])
             * First page: page=1;
             * Last page:  page=ceil($lCount / $aSettings['ArticlePerPage']);
             */
	    	$sPagination = array();
                $iPages = ceil($lCount / $aSettings['ArticlePerPage']);
                if ($bDebug) {
                    echo '<p>$iPages = '.$iPages.' / $aSettings[\'currentPage\'] = '.$aSettings['CurrentPage'].'</p>';
                }
                
                // Example: Back and Next
                $sPaginationType01 = array();
		if ($iPages > 1 && $aSettings['CurrentPage'] > 1) {
		$aParams = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => ($aSettings['CurrentPage'] - 1));
		$sPaginationType01[0][0] = cUri::getInstance()->buildRedirect($aParams);
		} else {
		$sPaginationType01[0][0] = '';
		}
		$sPaginationType01[0][1] = 'back';
		if ($iPages > 1 && $aSettings['CurrentPage'] < $iPages) {
		$aParams = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => ($aSettings['CurrentPage'] + 1));
		$sPaginationType01[1][0]  = cUri::getInstance()->buildRedirect($aParams);
		} else {
		$sPaginationType01[1][0] = '';
		}
		$sPaginationType01[1][1] = 'next';
		
		if ( $aSettings['PaginationType'] == 1 )  array_push($sPagination, $sPaginationType01);
                // Example: 1 2 3 4 5 6 7 ...
                $sPaginationType02 = array();
		for ($i = 1; $i <= $iPages; $i++) {
			
			$aParams = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $i);
			if ( $aSettings['CurrentPage'] != $i) {
				$sPaginationType02[] = array( cUri::getInstance()->buildRedirect($aParams), $i);
			} else {
				$sPaginationType02[] = array( '', $i);
			}
		}
		if ( $aSettings['PaginationType'] == 2 )  array_push($sPagination, $sPaginationType02);
                // Example: Seite 1 von 7
		$sPaginationType03[0][0] = '';
		$sPaginationType03[0][1] = mi18n("Page %s of %s", $aSettings['CurrentPage'], $iPages);
		if ( $aSettings['PaginationType'] == 3 )  array_push($sPagination, $sPaginationType03);
                // Example: << < 1 2 3 ... 5 6 7 ... 9 10 11 > >>
		$sPaginationType04 = array();
                    if ($aSettings['CurrentPage'] != 1) {
                        $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => 1);
                        $sPaginationType04[]   = array( cUri::getInstance()->buildRedirect($aParams), mi18n("«") );
                    } else {
                        $sPaginationType04[]   = array( '', mi18n("«") );
                    }
		    if (($aSettings['CurrentPage'] - 1) >= 1) {
                        $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => ($aSettings['CurrentPage'] - 1));
			$sPaginationType04[]   = array( cUri::getInstance()->buildRedirect($aParams), mi18n("â¹") );
                    } else {
			$sPaginationType04[]   = array( '', mi18n("â¹") );
                    }
                    
                    for ($i = 1; $i <= $iPages; $i++) {
                        $aStartRange = array(1, 2, 3);
                        $aEndRange   = array($iPages, ($iPages-1), ($iPages-2));
                        if (in_array($i, $aStartRange) || in_array($i, $aEndRange)) {
                            $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $i);
				if ($aSettings['CurrentPage'] != $i) {
				$sPaginationType04[]   = array( cUri::getInstance()->buildRedirect($aParams), $i );
				} else {
				$sPaginationType04[]   = array( '', $i ); // I'm on the current page, no link
					}
                        } elseif ($aSettings['CurrentPage'] == ($i+1)) {
                            // Front
                            $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $i);
                            $sPaginationType04[]   = array( cUri::getInstance()->buildRedirect($aParams), $i );
                        } elseif ($aSettings['CurrentPage'] == ($i-1)) {
                            // Back
                            $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $i);
                            $sPaginationType04[]   = array( cUri::getInstance()->buildRedirect($aParams), $i );
                        } elseif ($aSettings['CurrentPage'] == ($i-2) ||
                                  $aSettings['CurrentPage'] == ($i+2) ||
                                    ($aSettings['CurrentPage'] == ($i-3) && (($i-3)==1)) ||
                                    ($aSettings['CurrentPage'] == ($i+3) && (($i+3)==$iPages))) {
                            $sPaginationType04[]   = array( '', ' ...' );
                        }
                    }
                    
                    if (($aSettings['CurrentPage'] + 1) <= $iPages) {
                        $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => ($aSettings['CurrentPage'] + 1));
			$sPaginationType04[]   = array( cUri::getInstance()->buildRedirect($aParams), mi18n("âº") );
                    } else {
                        $sPaginationType04[]   = array( '', mi18n("âº") );
                    }
                    
                    if ($aSettings['CurrentPage'] != $iPages) {
                        $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $iPages);
			$sPaginationType04[]   = array( cUri::getInstance()->buildRedirect($aParams), mi18n("»") );
                    } else {
                        $sPaginationType04[]   = array( '', mi18n("»") );
                    }
		if ( $aSettings['PaginationType'] == 4 )  array_push($sPagination, $sPaginationType04);
                // Example: << < 1 2 3 4 5 6 7 8 ... > >>
                // This version is newly programmed and will produce errors for a start
		$sPaginationType05 = array();
		if ($aSettings['CurrentPage'] != 1) {
			$aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => 1);
			$sPaginationType05[]   = array( cUri::getInstance()->buildRedirect($aParams), mi18n("«") );
			} else {
			$sPaginationType05[]   = array( '', mi18n("«") );
		}
		if (($aSettings['CurrentPage'] - 1) >= 1) {
			$aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => ($aSettings['CurrentPage'] - 1));
			$sPaginationType05[]   = array( cUri::getInstance()->buildRedirect($aParams), mi18n("â¹") );
			} else {
			$sPaginationType05[]   = array( '', mi18n("â¹") );
		}
		if ($iPages > $aSettings['PaginationType05MaxPages'] && ($aSettings['CurrentPage'] + 1) > $aSettings['PaginationType05MaxPages']) $sPaginationType05[] = array( '', ' ...' );
		$start = ( $aSettings['CurrentPage'] > $aSettings['PaginationType05MaxPages']) ? $aSettings['CurrentPage']-$aSettings['PaginationType05MaxPages'] : 1;
		$end = ( $start != 1 ) ? $aSettings['CurrentPage'] : $iPages ;
		for($i = $start; $i <= $end; $i ++) {
			if ($i == $aSettings['CurrentPage'] ) {
				$sPaginationType05[]   = array( '', $i );
			} else {
				$aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $i);
				$sPaginationType05[]   = array( cUri::getInstance()->buildRedirect($aParams), $i );
			}
		}
		if ($iPages > $aSettings['PaginationType05MaxPages'] && ($aSettings['CurrentPage'] + 1) <= $aSettings['PaginationType05MaxPages']) $sPaginationType05[] = array( '', '... ' );
		if (($aSettings['CurrentPage'] + 1) <= $iPages) {
			$aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => ($aSettings['CurrentPage'] + 1));
			$sPaginationType05[]   = array( cUri::getInstance()->buildRedirect($aParams), mi18n("âº") );
		} else {
			$sPaginationType05[]   = array( '', mi18n("âº") );
		}
		if ($aSettings['CurrentPage'] != $iPages) {
			$aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $iPages);
			$sPaginationType05[]   = array( cUri::getInstance()->buildRedirect($aParams), mi18n("»") );
		} else {
			$sPaginationType05[]   = array( '', mi18n("»") );
		}		    
		if ( $aSettings['PaginationType'] == 5 )  array_push($sPagination, $sPaginationType05);
		// Pagination calculation finished
	    // end of IF articles found; if none are found, deal with it in the html-template
	    } 
	if ( $bDebug ) { print "<pre>"; print_r($articleList); print "</pre>"; }
	// nun noch ein paar Hauptwerte übergeordneter Art
	// Generate article list headline
	$listObj->artlistHeadline = text2utf8( $aSettings['ArtListHeadline'] , false , $aSettings['UseUTF8Decoding'] );	
	// Generate overview link. check on string being empty is mandatory, or cUri will crash the script
	if ( $aSettings['OverviewLink'] != '' ) {
		$aParams = (($iCount = substr_count($aSettings['OverviewLink'],'cat_')) > 0) ? array('lang' => $lang, 'idcat' => str_replace('cat_', '', $aSettings['OverviewLink'])) : '';
		$aParams = (($iCount = substr_count($aSettings['OverviewLink'],'art_')) > 0) ? array('lang' => $lang, 'idart' => str_replace('art_', '', $aSettings['OverviewLink'])) : $aParams;
		$listObj->overviewLink = cUri::getInstance()->buildRedirect($aParams);
	}
		
	// Generate a) default article text or b) free default text in case the article list will be empty
	// regarding the output priority: chosen article text ranks higher than free text
	$listObj->nolistFreetext = $aSettings['DefaultTextFree']; 
	if ( $aSettings['DefaultTextArticle'] != '' ) {
		$oCatArt = new cApiCategoryArticle( $aSettings['DefaultTextArticle']);
		$thisidart = $oCatArt->getField("idart");print $thisidart;
		$oArt = new cApiArticleLanguage( $thisidart, $lang);
		$oArt->loadByArticleAndLanguageId( $thisidart, $lang, true);
		$listObj->nolistArticletext = $oArt->getContent('html', 1); 
	}
	$listObj->nolistText = ( $listObj->nolistArticletext != '' ) ? $listObj->nolistArticletext : $listObj->nolistFreetext ;
	$listObj->more1         = mi18n("more_linktext1");
	$listObj->more2         = mi18n("more_linktext2");
	$listObj->more3         = mi18n("more_linktext3");
	$listObj->dateLabel1    = mi18n("date_label1");
	$listObj->dateLabel2    = mi18n("date_label2");
	$listObj->dateLabel3    = mi18n("date_label3");
	$listObj->overviewText1 = mi18n("overview_text1");
	$listObj->overviewText2 = mi18n("overview_text2");
	$listObj->overviewText3 = mi18n("overview_text3");
	$listObj->authorLabel1  = mi18n("author_label1");
	$listObj->authorLabel2  = mi18n("author_label2");
	$listObj->authorLabel3  = mi18n("author_label3");
	// create template
	$tpl->assign('alrId', "articleList"); // sets main container ID
	$tpl->assign('listObj', $listObj); // an object
	$tpl->assign('allPaginations',  $sPagination); // an array to walk through in template
	$tpl->assign('paginationType1', $sPaginationType01); // an array to walk through in template
	$tpl->assign('paginationType2', $sPaginationType02); // an array to walk through in template
	$tpl->assign('paginationType3', $sPaginationType03); // an array to walk through in template
	$tpl->assign('paginationType4', $sPaginationType04); // an array to walk through in template
	$tpl->assign('paginationType5', $sPaginationType05); // an array to walk through in template
        $tpl->assign('articleList', $articleList ); // an array to walk through in template
	if ( file_exists($tplpath.$aSettings['Template']) ) {
		$tpl->display($aSettings['Template']);
	} else {
		print mi18n("no_template_found");
	}
    }
    // Clearing memory
    unset ($aSettings);
    unset ($i);
    unset ($lCount);
    unset ($bDebug);
    unset ($db5);
} elseif ($bDebug) {
    echo '<strong>ShowModuleSetting: '.$aSettings['ShowModul'].'</strong>';
} else {
    // do nothing
}
?>
Code: Alles auswählen
{* Mastervorlage für die Article List Reloaded    *}
{*                                                *}
{* LISTE ALLER VARIABLEN AM ENDE DIESER DATEI!!!! *}
{*                                                *}
{* Das Modul erzeugt und übergibt weit mehr Werte, als in der Vorlage konfiguriert werden (Liste s.u.). *}
{* In der Vorlagenkonfiguration werden aus der Vielzahl der erzeugten Werte lediglich eine Auswahl in "default"-values gespeichert, so dass sich diese hier variabel verhalten, wenn man die Vorlage ändert. *}
{* Alle anderen Werte stehen dennoch zur Verfügung und können bei händischer Anpassung hier eingesetzt werden. *}
{* So ist es denkbar, sowohl z.B. einen gekürzten Seitentitel als Headline zu verwenden und den ungekürzten Seitentitel als Bildbeschreibung usw. *}
{* Zudem stehen für einige Fälle standardmäßig 3 zusätzliche Variablen zur Auswahl, falls z.B. verschiedene Versionen von "weiter"-Links zum Einsatz kommen müssen. *}
{* Auch jede Pagination steht zusätzlich zur jeweils ausgewählten in je eigenen Variablen zur Verfügung. *}
{* Diese Seite zeigt im Beispielcode nur EINE mögliche Darstellung, und die Elementnummern müssen jeweils neu zugeordnet werden. *}
{* NEU: Ein Artikelelement behält seine laufende Nummer aus der Vorlagenkonfiguration, also: "2. Element" =  $article.2_img  *}
<div id="{$alrId}">
	{if !empty($articleList) }
	
	{if $listObj->artlistHeadline != '' }
			<h1>{$listObj->artlistHeadline}</h1>
		{/if}
	
		
		<div class="newsPagination">
			
			{if !empty($allPaginations) }
				{foreach from=$allPaginations item=paginationtype}
				
					<div class="pagination paginationtype clearfix">
					{foreach from=$paginationtype item=page}		
						{if $page.0 == '' }
						<a class="active">{$page.1}</a>
						{else}
						<a href="{$page.0}" class="pageCounter">{$page.1}</a> 
						{/if}
					{/foreach}
					</div>
				
				{/foreach}
			{/if}
			
		</div>
		
		
		{foreach from=$articleList item=article}
			<div class="col-md-6">
               <div class="newsItem">
			
				{if $article.headline != '' }
					<h4>{$article.headline}</h4>
				{/if}	
				
				{if $article.date != '' }
				
				<div class="newsDate">
                    <div class="newsDay"> 
                    	{{$article.date}|regex_replace:"/[a-zA-Z.]/":" "}
                    </div>
                    
                    <div class="newsMonth">
                    	{$article.date|regex_replace:"/[0-9,]/":" "}
                    </div>
                    
                </div>
                
				{/if}
					
				<div class="newsEntryWrapper">
					<p class="artText">{$article.1_text}<br />{$article.3_text}</p>
				</div>
				<div class="clear"></div>
				{if $article.link != '' }
					<p class="linkMore"><img src="images/misc/Arrow_News.png" /><a href="{$article.link}">{$listObj->more1}</a></p>
				{/if}					
				
				</div>
			</div>
		{/foreach}
	{if $listObj->overviewLink != '' }
		<p class="linkOverview"><a href="{$listObj->overviewLink}">{$listObj->overviewText1}</a></p>
	{/if}	
	
	
	{else} {* if articleList == empty *}
	
	<p>{$listObj->nolistText}</p>
	
	{/if}
</div>
{*
Auf die Liste bezogene Variablen als Objekt:
$listObj->artlistHeadline  // in der Konfiguration eingegebene Überschrift über die ganze Liste
$listObj->authorLabel1 // 1-3 enthalten über die Übersetzung konfigurierbare Texte als Umfeld zu $article.author ("veröffentlicht von...")
$listObj->authorLabel2
$listObj->authorLabel3
$listObj->dateLabel1 // 1-3 enthalten über die Übersetzung konfigurierbare Texte als Umfeld zu $article.date ("veröffentlicht am...")
$listObj->dateLabel2
$listObj->dateLabel3
$listObj->more1  // 1-3 enthalten über die Übersetzung konfigurierbare Links für "weiter"-Buttons
$listObj->more2
$listObj->more3
$listObj->overviewLink // Link zu einer weiterführenden Übersichtsseite, z.B. mit ALLEN Teasern statt nur einer Auswahlteaserliste
$listObj->overviewText1 // 1-3 enthalten über die Übersetzung konfigurierbare Linktexte für den Link zur weiterführenden Seite (Übersicht)
$listObj->overviewText2
$listObj->overviewText3
$listObj->nolistArticletext // enthält ggf. den Text aus dem CMS_TEXT[1] des in der Konfiguration genannten Artikels
$listObj->nolistFreetext // enthält den in der Konfiguration angegebenen freien Text
$listObj->nolistText // Dynamische Variable, enthält je nach Einstellung entweder $listObj->nolistFreetext oder $listObj->nolistArticletext 
Arrays für die Pagination:
allPaginations  // enthält alle 5 u.g. Paginationen in einem mehrdimensionalen Array. Abhängig vom Paginationsdropdown wird aber nur die gewünschte ausgegeben.
paginationType1 // enthält Typ 1 als Array. $page.0 ist der Link, $page.1 ist der Linktext
paginationType2
paginationType3
paginationType4
paginationType5
Dynamisch artikelbezogene Variablen:
// diese passen ihren Inhalt an, je nach Einstellungen in der Konfiguration der Vorlage
// daher sind diese bevorzugt zu verwenden, da die Änderungen in der Konfiguration sich dann auch sichtbar auswirken:
article.headline // enthält entweder einen Containertext, die Zusammenfassung oder den Seitentitel, ggf. sogar gekürzt, je nach Einstellung
$article.date // enthält das in der Konfiguration ausgewählte Datum (created, published oder lastmodified) in der gewünschten Formatierung
// folgende Datumsvariablen passen sich an einen TEIL der Konfiguration an, nämlich das Datumsformat
$article.lastmodified // Datum, wann Artikel zuletzt geändert wurde, enthält entweder Variante long oder short
$article.created // wie lastmodified, nur bezogen auf das Erstellungsdatum des Artikels
$article.published // wie lastmodified, nur bezogen auf das Veröffentlichungsdatum
// folgende Textvariablen passen sich an, falls Kürzungen in der Konfiguration gewünscht sind oder nicht:
$article.pagetitle // enthält entweder die lange oder gekürzte Form des Seitentitels, je nach Einstellung
$$article.summary // Zusammenfassung (erstellbar in den Artikeleigenschaften), enthält entweder die lange oder gekürzte Form, je nach Einstellung
Weitgehend statische Variablen:
// von den Einstellungen in der Konfiguration nicht beeinflusst
$article.number  // fortlaufende Nummer ab 1 pro ausgegebenem Artikel
$article.category // Echtname der Kategorie, in zu der der Artikel gehört
$article.categoryid // idcat der Kategorie, zu der der Artikel gehört
$article.link // Link zum ARTIKEL, aus dem sich der Teaser speist
$article.linkcat // Link zur KATEGORIE des Artikels (für "...more")
$article.lastmodified_long // Datum im Langformat, z.B. "13. Dezember 2012"
$article.lastmodified_short // Datum im Kurzformat, z.B. "13. Dez. 2012"
$article.created_long
$article.created_short
$article.published_long
$article.published_short
$article.author //  Echtname des Autors
$article.headline_full // Ungekürzte Version des gewählten Containers in der Konfiguration
$article.headline_trimmed // Gekürzte Version, falls gewünscht
$article.pagetitle_full // Ungekürzter Seitentitel
$article.pagetitle_trimmed // Gekürzter Seitentitel, falls in der Konfiguration gewünscht
$article.summary_full // Ungekürzte Version der Zusammenfassung (erfassbar in den Artikeleigenschaften)
$article.summary_trimmed // Gekürzte Version der Zusammenfassung, falls gewünscht
Einzelne Artikelelemente im Stil, wobei die Nummer jeweils zu ersetzen ist:
// Wenn Text, dann
$article.1_text  // Containertext in der Variante, wie in der Konfiguration gewünscht
$article.1_text_full // Ungekürzte Version
$article.1_text_stripped // Version ohne jegliche Tags
$article.1_text_strippedabit // Version mit den verbliebenen gewünschten Tags
$article.1_text_cut // gekürzter Text ohne jegliche Tags
// Wenn Bild, dann
$article.2_img // Pfad zur Bilddatei
$article.2_img_src // Pfad zur Originaldatei, ggf. nutzbar für ein Popup/Lightbox innerhalb der Artikelliste
$article.2_width // Breite des (ggf. neu berechneten) Bildes
$article.2_height // Höhe des (ggf. neu berechneten) Bildes
$article.2_medianame // Metatag, einstellbar im Uploadbereich bei den Bildeigenschaften
$article.2_description // Metatag
$article.2_keywords // Metatag
$article.2_copyrights // Metatag
$article.2_internal_description // Metatag
*}
Wenn auf created eingestellt ist funktioniert es.
Was ist der Fehler?
DANKE
