Läuft leider immer noch nicht 
<?php
// Includes
cInclude('frontend', 'includes/pagination/ps_pagination.php');
// Initialization
$bDebug     = false;
$iDataStart = 1000; // Startwert fuer dynamisch generierte CMS_VAR Elemente !!!Muss im Input gleich sein!!!
$lCount     = 0;
// Check php version
$sVersion   = explode( '.', phpversion() );
$sVersion   = (((int)$sVersion[0] == 5 && (int)$sVersion[1] >= 2) || (int)$sVersion[0] > 5) ? 'php>=5.2' : 'php<5.2';
if ($sVersion == 'php>=5.2') {
    cInclude('frontend', 'includes/class.datetimereplacelang.php');
} elseif (!function_exists(formatDateToStrftime)) {
    function formatDateToStrftime($sDate) {
        $aDate      = array('d', 'm', 'y', 'H', 'i', 'F', 'j', 'Y', 'M', 'l', 'D');
        $aStrftime  = array('%d', '%m', '%y', '%H', '%M', '%B', '%e', '%Y', '%b', '%A', '%a');
        return str_replace($aDate, $aStrftime, $sDate);
    }
} else {
    // do nothing
}
unset ($aData);
$aData = array();
// Base settings
unset ($aSettings);
$aSettings = array();
$aSettings['ShowModul']                  = "CMS_VALUE[0]";
$aSettings['Category']                   = "CMS_VALUE[100]";
$aSettings['CatTypeSel']                 = "CMS_VALUE[105]";
$aSettings['AddCats']                    = "CMS_VALUE[106]";
$aSettings['ArticleCount']               = "CMS_VALUE[110]";
$aSettings['SortBy']                     = "CMS_VALUE[115]";
$aSettings['SortDir']                    = "CMS_VALUE[116]";
$aSettings['ShowStart']                  = "CMS_VALUE[120]";
$aSettings['ShowOnlyStart']              = "CMS_VALUE[121]";
$aSettings['ShowCurrentArticle']         = "CMS_VALUE[123]";
$aSettings['Template']                   = "CMS_VALUE[125]";
$aSettings['UseArtListHeadline']         = "CMS_VALUE[300]";
$aSettings['ArtListHeadline']            = "CMS_VALUE[301]";
$aSettings['UseDefaultText']             = "CMS_VALUE[305]";
$aSettings['DefaultTextArticle']         = "CMS_VALUE[306]";
$aSettings['DefaultTextFreeText']        = "CMS_VALUE[307]";
$aSettings['UseOverviewLink']            = "CMS_VALUE[310]";
$aSettings['OverviewLink']               = "CMS_VALUE[311]";
$aSettings['OverviewLinkText']           = "CMS_VALUE[312]";
$aSettings['UseDateFormat']              = "CMS_VALUE[315]";
$aSettings['DateFormat']                 = "CMS_VALUE[316]";
$aSettings['DateSort']                   = "CMS_VALUE[317]";
$aSettings['DateLanguage']               = "CMS_VALUE[318]";
$aSettings['UseAuthorLabeling']          = "CMS_VALUE[320]";
$aSettings['AuthorLabeling']             = "CMS_VALUE[321]";
$aSettings['UsePagination']              = "CMS_VALUE[330]";
$aSettings['ArticlePerPage']             = "CMS_VALUE[331]";
$aSettings['PaginationType01']           = "CMS_VALUE[332]";
$aSettings['PaginationType02']           = "CMS_VALUE[333]";
$aSettings['PaginationType03']           = "CMS_VALUE[334]";
$aSettings['PaginationType04']           = "CMS_VALUE[335]";
$aSettings['PaginationType05']           = "CMS_VALUE[336]";
$aSettings['PaginationType05MaxPages']   = "CMS_VALUE[337]";
$aSettings['UseUTF8Decoding']            = "CMS_VALUE[340]";
$aSettings['SampleArt']                  = "CMS_VALUE[500]";
$aSettings['HeadlineIdentifier']         = "CMS_VALUE[510]";
$aSettings['HeadlineLength']             = "CMS_VALUE[511]";
$aSettings['UseSummary']                 = "CMS_VALUE[515]";
$aSettings['SummaryWidth']               = "CMS_VALUE[516]";
$aSettings['UsePageTitle']               = "CMS_VALUE[520]";
$aSettings['PageTitleWidth']             = "CMS_VALUE[521]";
$aSettings['Elements']                   = "CMS_VALUE[525]";
$aSettings['CurrentPage']                = $_REQUEST['page'];
if ($aSettings['ShowModul'] == 'on') {
    
    // 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 Purge($db, $cfg, $cfgClient);
    $oPurge->clearClientCache($iClientId, 'cache/content/');
    
    // Checking base settings
    $aSettings['ArticleCount']             = (!is_numeric($aSettings['ArticleCount']) || $aSettings['ArticleCount'] < 0)     ? 5 : $aSettings['ArticleCount'];
    $aSettings['OverviewLinkText']         = ($aSettings['OverviewLinkText'] == "")                                          ? mi18n("Link to overview") : $aSettings['OverviewLinkText'];
    $aSettings['ArticlePerPage']           = ($aSettings['UsePagination'] == 'enabled' &&
                                              is_numeric($aSettings['ArticlePerPage']) &&
                                              $aSettings['ArticlePerPage'] >= 2)                                             ? $aSettings['ArticlePerPage'] : 10;
    $aSettings['CurrentPage']              = (!is_numeric($aSettings['CurrentPage']) ||
                                              !isset($aSettings['CurrentPage']))                                             ? 1 : $aSettings['CurrentPage'];
    $aSettings['Category']                 = str_replace('cat_', '', $aSettings['Category']);
    $aSettings['Category']                 = (!is_numeric($aSettings['Category']) || $aSettings['Category'] <= 0)            ? 0 : $aSettings['Category'];
    $aSettings['HeadlineIdentifier']       = (strlen($aSettings['HeadlineIdentifier']) > 50)                                 ? '' : $aSettings['HeadlineIdentifier'];
    $aSettings['HeadlineLength']           = (!is_numeric($aSettings['HeadlineLength']) || $aSettings['HeadlineLength'] < 0) ? 0 : $aSettings['HeadlineLength'];
    $aSettings['Elements']                 = (!is_numeric($aSettings['Elements']) || $aSettings['Elements'] < 0)             ? 0 : $aSettings['Elements'];
    $aSettings['CatTypeSel']               = ($aSettings['CatTypeSel'] == '' ||
                                              ($aSettings['AddCats'] == '' &&
                                              $aSettings['CatTypeSel'] == 'selected'))                                       ? 'none' : $aSettings['CatTypeSel'];
    $aSettings['PaginationType05MaxPages'] = (!is_numeric($aSettings['PaginationType05MaxPages']) ||
                                              $aSettings['PaginationType05MaxPages'] == '')                                  ? 10 : $aSettings['PaginationType05MaxPages'];
    $aSettings['PaginationType05MaxPages'] = ($aSettings['PaginationType05MaxPages'] <= 3)                                   ? 3 : $aSettings['PaginationType05MaxPages'];
    $aSettings['SummaryWidth']             = (!is_numeric($aSettings['SummaryWidth']) || $aSettings['SummaryWidth'] < 0)     ? 0 : $aSettings['SummaryWidth'];
    $aSettings['PageTitleWidth']           = (!is_numeric($aSettings['PageTitleWidth']) || $aSettings['PageTitleWidth'] < 0) ? 0 : $aSettings['PageTitleWidth'];
    if ($aSettings['UseUTF8Decoding'] == 'enabled') {
        cInclude('frontend', 'includes/functions.include.UTF8decoding.php');
    }
    // Detail settings
    if ($aSettings['Elements'] > 0) {
        for ($i = 0; $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]";
            $aSettings['k'.$i]['ElementWidth']       = "CMS_VALUE[$iElementWidth]";       // Textlength or ImageWidth
            $aSettings['k'.$i]['ElementHeight']      = "CMS_VALUE[$iElementHeight]";
            $aSettings['k'.$i]['DontStripTags']      = ("CMS_VALUE[$iElementDontStripTags]" == 'enabled' && $aSettings['k'.$i]['ElementWidth'] == 0);
            $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'] = 50;
                }
            }
            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 (!is_object($db2)) $db2 = new DB_Contenido;
        // 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->next_record()) {
                    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(",", str_replace('cat_','',$aSettings["AddCats"])); // 
http://forum.contenido.org/viewtopic.ph ... 95#p149395
                foreach ($aCats as $value)
                    if (is_numeric($value))
                        $sSelCats .= ',"'.$value.'"';
                break;
            default:
        } // end switch
        $sql =  'SELECT'."\n".
                '    tblData.value AS headline,'."\n".
                '    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".
                '    '.$cfg['tab']['cat_lang'].' AS catlang,'."\n".
                '    '.$cfg['tab']['content'].' AS tblData'."\n".
                'WHERE'."\n".
                '    catart.idcat IN ('.$sSelCats.') AND'."\n".
                '    artlang.idlang = '.$lang.' AND'."\n".
                '    tblData.idartlang = artlang.idartlang AND'."\n".
                '    catlang.idlang = artlang.idlang AND'."\n".
                '    catlang.idcat = catart.idcat AND'."\n".
                '    artlang.idart = catart.idart ';
            
        if ($aSettings['ShowStart'] != 'enabled')
            $sql .= ($cfg['is_start_compatible'] == true) ? 'AND '."\n".'    catart.is_start = 0 ' : 'AND '."\n".'    tblData.idartlang != catlang.startidartlang ';
        else
            if ($aSettings['ShowOnlyStart'] == 'enabled')
                $sql .= ($cfg['is_start_compatible'] == true) ? 'AND '."\n".'    catart.is_start = 1 ' : 'AND '."\n".'    tblData.idartlang = catlang.startidartlang ';
        if ($aSettings['ShowCurrentArticle'] != '' && is_numeric($aSettings['ShowCurrentArticle']))
            $sql .= ' AND'."\n".'    artlang.idart <> ' . $aSettings['ShowCurrentArticle'] . ' ';
        $sql .= 'AND '."\n".'    artlang.online = 1'."\n";
        $sql .= 'AND '."\n".'    '.$aSettings['HeadlineIdentifier'].'';
        // Sort by
        $sql .= "\n".'ORDER BY'."\n".
                '    '.$aSettings['SortBy']."\n".
                '    '.$aSettings['SortDir']."\n";
        // LIMIT
        if ($aSettings['UsePagination'] == 'enabled') $sql_pagination = $sql;
        if ($aSettings['ArticleCount'] > 0) $sql .= 'LIMIT 0, '.$aSettings['ArticleCount'];
        if ($aSettings['UsePagination'] == 'enabled') $sql_all = $sql;
        if ($bDebug) {
            echo '<pre>'.$sql.'</pre>', chr(10);
        }
        // execute query
        $db2->query($sql);
        $lCount = $db2->num_rows();
        // Init Template
        if (!is_object($tpl)) $tpl = new Template;
        $tpl->reset();
        if ($lCount > 0) {
            if (!is_object($db3)) $db3 = new DB_Contenido;
            if (!is_object($db4)) $db4 = new DB_Contenido;
            if (!is_object($db5)) $db5 = new DB_Contenido;
            if ($aSettings['ArticlePerPage'] > 0 && $aSettings['UsePagination'] == 'enabled') {
                $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->next_record()) {
                if ($aSettings['ShowStart'] == 'enabled' ||
                   ($aSettings['ShowStart'] != 'enabled' && $db2->f('idartlang') != $lStartIDArtLang)) {
                    if ($lRow >= $lStartCount && $lRow < $lEndCount) {
                        $aData[$i]                 = array();
                        $aData[$i]['Category']     = urldecode($db2->f('Category'));
                        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'));
                        }
                        $inUrl = Contenido_Url::getInstance()->buildRedirect($aParams);
                        $aData[$i]['Link']         = $inUrl;
                        $aData[$i]['LastModified'] = $db2->f('lastmodified');
                        $aData[$i]['Autor']        = $db2->f('autor');
                        $aData[$i]['Created']      = $db2->f('created');
                        $aData[$i]['Published']    = $db2->f('published');
                        // Generate pagetitle
                        if ($aSettings['UseUTF8Decoding'] != 'enabled') {
                            $sTmpValue = urldecode($db2->f('pagetitle'));
                        } else {
                            $sTmpValue = html_entity_decode_utf8(urldecode($db2->f('pagetitle')));
                        }
                        if ($aSettings['PageTitleWidth'] > 0 && strlen($sTmpValue) > $aSettings['PageTitleWidth'] && $aSettings['UsePageTitle'] == 'enabled') {
                            // Cutting text but preserving words
                            $sTmpValue = capiStrTrimAfterWord($sTmpValue, $aSettings['PageTitleWidth']).'...';
                        } elseif ($aSettings['UsePageTitle'] == 'enabled') {
                            $sTmpValue = $sTmpValue;
                        } else {
                            $sTmpValue = '';
                        }
                        $aData[$i]['PageTitle'] = $sTmpValue;
                        // Generate headline
                        if ($aSettings['UseUTF8Decoding'] != 'enabled') {
                            $sTmpValue = strip_tags(urldecode($db2->f('headline')));
                        } else {
                            $sTmpValue = html_entity_decode_utf8(strip_tags(urldecode($db2->f('headline'))));
                        }
                        if ($aSettings['HeadlineLength'] > 0 && strlen($sTmpValue) > $aSettings['HeadlineLength']) {
                            // Cutting text but preserving words and entities
                            $sTmpValue = capiStrTrimAfterWord($sTmpValue, $aSettings['HeadlineLength']).'...';
                        }
                        $aData[$i]['Headline'] = $sTmpValue;
                        // Generate Summary
                        if ($aSettings['UseUTF8Decoding'] != 'enabled') {
                            $sTmpValue = urldecode($db2->f('summary'));
                        } else {
                            $sTmpValue = html_entity_decode_utf8(urldecode($db2->f('summary')));
                        }
                        if ($aSettings['SummaryWidth'] > 0 && strlen($sTmpValue) > $aSettings['SummaryWidth'] && $aSettings['UseSummary'] == 'enabled') {
                            // Cutting text but preserving words
                            $sTmpValue = capiStrTrimAfterWord($sTmpValue, $aSettings['SummaryWidth']).'...';
                        } elseif ($aSettings['UseSummary'] == 'enabled') {
                            $sTmpValue = $sTmpValue;
                        } else {
                            $sTmpValue = '';
                        }
                        $aData[$i]['Summary'] = $sTmpValue;
                        //
                        if ($aSettings['Elements'] > 0) {
                            for ($k = 0; $k < $aSettings['Elements']; $k++) {
                                $aData[$i]['i'.$k]               = array();
                                $aData[$i]['i'.$k]['Value']      = '';
                                $aData[$i]['i'.$k]['ServerPath'] = '';
                                $aData[$i]['i'.$k]['WebPath']    = '';
                                $aData[$i]['i'.$k]['Width']      = 0;
                                $aData[$i]['i'.$k]['Height']     = 0;
                            } // end for
                            $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 = 0; $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->next_record()) {
                                $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 = 0; $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'."\n".
                                                            '    dirname,'."\n".
                                                            '    filename'."\n".
                                                            'FROM'."\n".
                                                            '    '.$cfg['tab']['upl']."\n".
                                                            'WHERE'."\n".
                                                            '    idupl = "'.$db3->f('value').'"';
                                                } else {
                                                    $sTmpValue = urldecode($db3->f('value'));
                                                    $regEx = "/<img[^>]*?>.*?/i";
                                                    $match = array ();
                                                    preg_match($regEx, $sTmpValue, $match);
                                                    $regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
                                                    $img = array ();
                                                    preg_match($regEx, $match[0], $img);
                                                    $img_src = preg_split("/\//", $img[0]);
                                                    $img_name = $img_src[count($img_src) - 1];
                                                    $img_name = preg_replace("/\"/", "", $img_name);
                                                    $name = strtolower($img_name);
                                                    if (strlen($name) > 0) {
                                                        $sql =  'SELECT'."\n".
                                                                '    dirname,'."\n".
                                                                '    filename'."\n".
                                                                'FROM'."\n".
                                                                '    '.$cfg['tab']['upl']."\n".
                                                                'WHERE'."\n".
                                                                '    LOWER(filename) = "'.$name.'"';
                                                    }
                                                }
                                                if ($bDebug) {
                                                    echo '<pre>'.$sql.'</pre>';
                                                }
                                                // execute query
                                                if ($sql != '') {
                                                    $db4->query($sql);
                                                    if ($db4->next_record()) {
                                                        $aData[$i]['i'.$k]['ServerPath']   = $cfgClient[$client]['upl']['path'].$db4->f('dirname').$db4->f('filename');
                                                        $aData[$i]['i'.$k]['WebPath']      = $cfgClient[$client]['upl']['htmlpath'].$db4->f('dirname').$db4->f('filename');
                                                        list (
                                                            $width,
                                                            $height,
                                                            $type,
                                                            $attr
                                                        ) = getimagesize($aData[$i]['i'.$k]['ServerPath']);
                                                        $aData[$i]['i'.$k]['Width']        = $width;
                                                        $aData[$i]['i'.$k]['Height']       = $height;
                                                    }
                                                }
                                                break;
                                            case ($aSettings['k'.$k]['ElementType'] == 'FixedDate'):
                                                $aData[$i]['i'.$k]['Value'] = strip_tags(trim(urldecode($db3->f('value'))));
                                                break;
                                            default:
                                                if ($aSettings['UseUTF8Decoding'] != 'enabled') {
                                                    $sTmpValue = ($aSettings['k'.$k]['DontStripTags']) ? urldecode($db3->f('value')) : str_replace('  ', ' ', preg_replace('/\r/s', '', preg_replace('/\n|\t/s', ' ', strip_tags(urldecode($db3->f('value')), $aSettings['k'.$k]['ElementAllowedTags']))));
                                                } else {
                                                    $sTmpValue = ($aSettings['k'.$k]['DontStripTags']) ? html_entity_decode_utf8(urldecode($db3->f('value'))) : 
                                                        html_entity_decode_utf8(
                                                            str_replace('  ', ' ', 
                                                                preg_replace('/\r/s', '', 
                                                                    preg_replace('/\n|\t/s', ' ', 
                                                                        strip_tags(urldecode($db3->f('value')), $aSettings['k'.$k]['ElementAllowedTags'])
                                                                    )
                                                                )
                                                            )
                                                        );
                                                }
                                                if ($aSettings['k'.$k]['ElementWidth'] > 0 && strlen($sTmpValue) > $aSettings['k'.$k]['ElementWidth']) {
                                                    // Cutting text but preserving words and entities
                                                    $sTmpValue = capiStrTrimAfterWord($sTmpValue, $aSettings['k'.$k]['ElementWidth']).'...';
                                                }
                                                $aData[$i]['i'.$k]['Value'] = $sTmpValue;
                                        } // end switch
                                    } // end if ($sTypeIdentifier == $aSettings['k'.$k]['Identifier'])
                                } // end for
                            } // end while
                        }
                        $i++;
                    }
                    elseif ($lRow == $lEndCount) {
                        break;
                    }
                    $lRow++;
                }
            } // end while
            // Clearing memory
            unset ($db2);
            unset ($db3);
            unset ($db4);
            unset ($sql);
            unset ($lStartIDArtLang);
            unset ($lStartCount);
            unset ($lEndCount);
            /**
             * Output data
             * Every output manipulation should be done here...
             *
             * Base information:
             * $aSettings['UseArtListHeadline']:        Enable use  of article list headline
             * $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
             *
             * Per article:
             * $aValue['Headline']:                     Content of article element specified as containing the headline information
             * $aValue['Link']:                         Relative link to get to the listed article
             * $aValue['LastModified']:                 Last modified date of the article
             * $aValue['Created']:                      Created date of the article
             * $aValue['Published']:                    Published date of the article
             * $aValue['Category']:                     Category name
             * $aValue['Autor']:                        Autor name
             * $aValue['Pagetitle']:                    Pagetitle
             * $aValue['Summary']:                      Summary
             *
             * Per article additional element:
             * $aValue['i'.$i]['Value']:                Text (only for text elements, otherwise '')
             * $aValue['i'.$i]['WebPath']:              HTTP... path to image
             * $aValue['i'.$i]['ServerPath']:           /server/... path to image
            `* $aValue['i'.$i]['Width']:                >Original< image width
             * $aValue['i'.$i]['Height']:               >Original< image height
             *
             */
            foreach ($aData as $aValue) {
                if ($aSettings['Elements'] > 0) {
                    for ($i = 0; $i < $aSettings['Elements']; $i++) {
                        switch (TRUE) {
                            case ($aSettings['k'.$i]['ElementType'] == 'Image' || $aSettings['k'.$i]['ElementType'] == 'ExtractedImage'):
                                $image  = $aValue['i'.$i]['WebPath'];
                                $width  = $aValue['i'.$i]['Width'];
                                $height = $aValue['i'.$i]['Height'];
                                if ($aSettings['k'.$i]['ElementWidth'] > 0 && $aSettings['k'.$i]['ElementHeight'] > 0) {
                                    // Check, if resize necessary
                                    if ( $aValue['i'.$i]['ServerPath'] != '' && file_exists($aValue['i'.$i]['ServerPath']) &&
                                        ($aValue['i'.$i]['Width'] > $aSettings['k'.$i]['ElementWidth'] || $aValue['i'.$i]['Height'] > $aSettings['k'.$i]['ElementHeight'])) {
                                        // Scale image
                                        $image = capiImgScale($aValue['i'.$i]['ServerPath'], $aSettings['k'.$i]['ElementWidth'], $aSettings['k'.$i]['ElementHeight'], false, false, 10, true, 100, true);
                                        // Get dimensions of the image
                                        list (
                                            $width,
                                            $height,
                                            $type,
                                            $attr
                                        ) = getimagesize(str_replace($cfgClient[$client]['path']['htmlpath'], $cfgClient[$client]['path']['frontend'], $image));
                                    } else {
                                        $image  = $aValue['i'.$i]['WebPath'];
                                        $width  = $aValue['i'.$i]['Width'];
                                        $height = $aValue['i'.$i]['Height'];
                                    }
                                }
                                $artlist_image = ($image != '') ? '<img class="articlelistImage" src="'.$image.'" width="'.$width.'" height="'.$height.'" alt="'.mi18n("Article Thumb").'" />' : '';
                                $tpl->set('d', 'IMG_'.$i,  $artlist_image);
                                break;
                            case ($aSettings['k'.$i]['ElementType'] == 'FixedDate'):
                                $tpl->set('d', 'FIXEDDATE', $aValue['i'.$i]['Value']);
                                break;
                            default: // Everything else is treated as "Text"
                                $artlist_text = $aValue['i'.$i]['Value'];
                                $tpl->set('d', 'TEXT_1', $myValue);
                        } // end switch
                    } // end for
                }
                // Generate date if enabled
                if($aSettings['UseDateFormat'] == 'enabled') {
                    if ($sVersion == 'php>=5.2') {
                        if ($aSettings['DateLanguage'] != 'en_UK') {
                            $oDate = ($aSettings['DateSort'] == 'create') ? new DateTimeReplaceLang($aValue['Created']) : new DateTimeReplaceLang($aValue['Published']);
                            if ($aSettings['DateFormat'] == 'F j, Y' || $aSettings['DateFormat'] == 'j F Y' || $aSettings['DateFormat'] == 'l, j F Y')
                                $artlist_lastmod = $oDate->format($aSettings['DateFormat'], $aSettings['DateLanguage'], 'long');
                            else
                                $artlist_lastmod = $oDate->format($aSettings['DateFormat'], $aSettings['DateLanguage'], 'short');
                            
//                            $fmt = new IntlDateFormatter("de_DE", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Europe/Berlin', IntlDateFormatter::GREGORIAN);
//                            $artlist_lastmod = $fmt->format($aValue['Created']);
                        } else {
                            $oDate = ($aSettings['DateSort'] == 'create') ? new DateTime($aValue['Created']) : new DateTime($aValue['Published']);
                            $artlist_lastmod = $oDate->format($aSettings['DateFormat']);
                        }
                    } else {
                        setlocale(LC_TIME, $aSettings['DateLanguage']);
                        $tmp_artlist_Date = ($aSettings['DateSort'] == 'create') ? strtotime($aValue['Created']) : strtotime($aValue['Published']);
                        $artlist_lastmod = strftime(formatDateToStrftime($aSettings['DateFormat']), $tmp_artlist_Date);
                    }
                } else {
                    $artlist_lastmod = '';
                }
                // Search author if enabled
                if($aSettings['UseAuthorLabeling'] == 'enabled') {
                    $sql =  'SELECT'."\n".
                            '    realname AS name'."\n".
                            'FROM'."\n".
                            '    '.$cfg['tab']['phplib_auth_user_md5']."\n".
                            'WHERE'."\n".
                            '    username = "'.$aValue["Autor"].'"';
                    // execute query
                    $db5->query($sql);
                    if ($bDebug) {
                        echo '<pre>'.$sql.'</pre>', chr(10);
                    }
                    $db5->next_record();
                    $sAuthor = strip_tags(urldecode($db5->f('name')));
                    if ($aSettings['UseUTF8Decoding'] != 'enabled') {
                        $sAuthor = strip_tags(urldecode($db5->f('name')));
                    } else {
                        $sAuthor = html_entity_decode_utf8(strip_tags(urldecode($db5->f('name'))));
                    }
                } else {
                    $sAuthor = '';
                }
                $artlist_more = mi18n("More");
                // Generate template
                $tpl->set('d', 'PAGELINK',  $aValue['Link']);
                $tpl->set('d', 'PAGETITLE', $aValue['PageTitle']);
                $tpl->set('d', 'DATE',      $artlist_lastmod);
                $tpl->set('d', 'HEADLINE',  $aValue['Headline']);
                $tpl->set('d', 'LABELING',  $aSettings['AuthorLabeling']);
                $tpl->set('d', 'AUTHOR',    $sAuthor);
                $tpl->set('d', 'SUMMARY',   $aValue['Summary']);
                $tpl->set('d', 'MORE',      $artlist_more);
                $tpl->next();
                
                unset($oDate);
            } // end foreach
            if ($aSettings['UseOverviewLink'] == 'enabled') {
                $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;
                $inUrl = Contenido_Url::getInstance()->buildRedirect($aParams);
                $sOverviewLink = '<div class="articlelistLinkToOverview"><a href="'.$inUrl.'" title="'.$aSettings['OverviewLinkText'].'">'.$aSettings['OverviewLinkText'].'</a></div>';
                $tpl->set('s', 'OVERVIEWLINK', $sOverviewLink);
            } else {
                $tpl->set('s', 'OVERVIEWLINK', '');
            }
            $tpl->set('s', 'DEFAULTTEXT', '');
                
            /**
             * 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']);
             */
            if ($aSettings['UsePagination'] == 'enabled') {
                $iPages = ceil($lCount / $aSettings['ArticlePerPage']);
                if ($bDebug) {
                    echo '<p>$iPages = '.$iPages.' / $aSettings[\'currentPage\'] = '.$aSettings['CurrentPage'].'</p>';
                }
                
                // Example: Back and Next
                $sPaginationType01 = '';
                if ($aSettings['PaginationType01'] == 'enabled') {
                    if ($iPages > 1 && $aSettings['CurrentPage'] > 1) {
                        $aParams = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => ($aSettings['CurrentPage'] - 1));
                        $inUrl = Contenido_Url::getInstance()->buildRedirect($aParams);
                        
                        $sPaginationType01 .= '<div class="articlelistBack">';
                        $sPaginationType01 .= '<a href="'.$inUrl.'">'.mi18n("Back").'</a>';
                        $sPaginationType01 .= '</div>';
                    } else {
                        $sPaginationType01 .= '<div class="articlelistBack">';
                        $sPaginationType01 .= mi18n("Back");
                        $sPaginationType01 .= '</div>';
                    }
                    if ($iPages > 1 && $aSettings['CurrentPage'] < $iPages) {
                        $aParams = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => ($aSettings['CurrentPage'] + 1));
                        $inUrl = Contenido_Url::getInstance()->buildRedirect($aParams);
                        
                        $sPaginationType01 .= '<div class="articlelistNext">';
                        $sPaginationType01 .= '<a href="'.$inUrl.'">'.mi18n("Next").'</a>';
                        $sPaginationType01 .= '</div>';
                    } else {
                        $sPaginationType01 .= '<div class="articlelistNext">';
                        $sPaginationType01 .= mi18n("Next");
                        $sPaginationType01 .= '</div>';
                    }
                }
                // Example: 1 2 3 4 5 6 7 ...
                $sPaginationType02 = '';
                if ($aSettings['PaginationType02'] == 'enabled') {
                    for ($i = 1; $i <= $iPages; $i++) {
                        if ($sPaginationType02 != '') $sPaginationType02 .= ' ';
                        
                        if ($aSettings['CurrentPage'] == $i) {
                            $sPaginationType02 .= $i;
                        } else {
                            $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $i);
                            $inUrl              = Contenido_Url::getInstance()->buildRedirect($aParams);
                            $sPaginationType02 .= '<a class="articlelistPageNumber" href="'.$inUrl.'">'.$i.'</a>';
                        }
                    }
                }
                // Example: Seite 1 von 7
                $sPaginationType03 = '';
                if ($aSettings['PaginationType03'] == 'enabled')
                    $sPaginationType03 .= mi18n("Page").' '.$aSettings['CurrentPage'].' '.mi18n("of").' '.$iPages;
                // Example: << < 1 2 3 ... 5 6 7 ... 9 10 11 > >>
                $sPaginationType04 = '';
                if ($aSettings['PaginationType04'] == 'enabled') {
                    if ($aSettings['CurrentPage'] != 1) {
                        $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => 1);
                        $inUrl              = Contenido_Url::getInstance()->buildRedirect($aParams);
                        $sPaginationType04 .= '<a class="articlelistBegin" href="'.$inUrl.'">'.mi18n("«").'</a> ';
                    } else {
                        $sPaginationType04 .= '<span class="articlelistBegin">'.mi18n("«").'</span> ';
                    }
                    
                    if (($aSettings['CurrentPage'] - 1) >= 1) {
                        $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => ($aSettings['CurrentPage'] - 1));
                        $inUrl              = Contenido_Url::getInstance()->buildRedirect($aParams);
                        $sPaginationType04 .= '<a class="articlelistPrevious" href="'.$inUrl.'">'.mi18n("‹").'</a>';
                    } else {
                        $sPaginationType04 .= '<span class="articlelistPrevious">'.mi18n("‹").'</span>';
                    }
                    
                    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)) {
                            if ($sPaginationType04 != '') $sPaginationType04 .= ' ';
                            $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $i);
                            $inUrl              = Contenido_Url::getInstance()->buildRedirect($aParams);
                            $sPaginationType04 .= ($aSettings['CurrentPage'] == $i) ? '<span class="articlelistLinkActive">'.$i.'</span>' : '<a class="articlelistPageNumber" href="'.$inUrl.'">'.$i.'</a>';
                        } elseif ($aSettings['CurrentPage'] == $i) {
                            $sPaginationType04 .= ' <span class="articlelistLinkActive">'.$i.'</span>'; // I'm on the current page, no link
                        } elseif ($aSettings['CurrentPage'] == ($i+1)) {
                            // Front
                            $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $i);
                            $inUrl              = Contenido_Url::getInstance()->buildRedirect($aParams);
                            $sPaginationType04 .= ' <a class="articlelistPageNumber" href="'.$inUrl.'">'.$i.'</a>';
                        } elseif ($aSettings['CurrentPage'] == ($i-1)) {
                            // Back
                            $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $i);
                            $inUrl              = Contenido_Url::getInstance()->buildRedirect($aParams);
                            $sPaginationType04 .= ' <a class="articlelistPageNumber" href="'.$inUrl.'">'.$i.'</a>';
                        } elseif ($aSettings['CurrentPage'] == ($i-2) ||
                                  $aSettings['CurrentPage'] == ($i+2) ||
                                    ($aSettings['CurrentPage'] == ($i-3) && (($i-3)==1)) ||
                                    ($aSettings['CurrentPage'] == ($i+3) && (($i+3)==$iPages))) {
                            $sPaginationType04 .= ' ...';
                        }
                    }
                    
                    if (($aSettings['CurrentPage'] + 1) <= $iPages) {
                        $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => ($aSettings['CurrentPage'] + 1));
                        $inUrl              = Contenido_Url::getInstance()->buildRedirect($aParams);
                        $sPaginationType04 .= ' <a class="articlelistNext" href="'.$inUrl.'">'.mi18n("›").'</a>';
                    } else {
                        $sPaginationType04 .= ' <span class="articlelistNext">'.mi18n("›").'</span>';
                    }
                    
                    if ($aSettings['CurrentPage'] != $iPages) {
                        $aParams            = array('lang' => $lang, 'idcat' => $idcat, 'idart' => $idart, 'page' => $iPages);
                        $inUrl              = Contenido_Url::getInstance()->buildRedirect($aParams);
                        $sPaginationType04 .= ' <a class="articlelistEnd" href="'.$inUrl.'">'.mi18n("»").'</a>';
                    } else {
                        $sPaginationType04 .= ' <span class="articlelistEnd">'.mi18n("»").'</span>';
                    }
                }
                // Example: << < 1 2 3 4 5 6 7 8 ... > >>
                // First Page
                $sPaginationType05 = '';
                if ($aSettings['PaginationType05'] == 'enabled') {
                    if (!is_object($db)) $db = new DB_Contenido;
                    /**
                     * Create a PS_Pagination object
                     *
                     * $conn = MySQL connection object
                     * $sql = SQl Query to paginate
                     * $aSettings['ArticlePerPage'] = Number of rows per page
                     * $aSettings['PaginationType05MaxPages'] = Number of links
                     * 'param1=valu1¶m2=value2' = You can append your own parameters to paginations links
                     */
                    $pager = new PS_Pagination($db, $sql_all, $sql_pagination, $aSettings['ArticlePerPage'], $aSettings['PaginationType05MaxPages'], 'idart='.$idart);
                    /**
                     * Enable debugging if you want o view query errors
                     */
                    $pager->setDebug(true);
                    // Init pagination
                    $pager->paginate();
                    // Display the full navigation in one go
                    $sDotsBefore = '';
                    $sDotsAfter = '';
                    if ($iPages > $aSettings['PaginationType05MaxPages'] && ($aSettings['CurrentPage'] + 1) > $aSettings['PaginationType05MaxPages'])
                        $sDotsBefore .= ' ...';
                    if ($iPages > $aSettings['PaginationType05MaxPages'] && ($aSettings['CurrentPage'] + 1) <= $aSettings['PaginationType05MaxPages'])
                        $sDotsAfter .= '... ';
                    $sPaginationType05 .= $pager->renderFirst(mi18n("«")).$pager->renderPrev(mi18n("‹")).$sDotsBefore.$pager->renderNav('','').$sDotsAfter.$pager->renderNext(mi18n("›")).$pager->renderLast(mi18n("»"));
                }
            }
            $tpl->set('s', 'PAGINATIONTYPE01', $sPaginationType01);
            $tpl->set('s', 'PAGINATIONTYPE02', $sPaginationType02);
            $tpl->set('s', 'PAGINATIONTYPE03', $sPaginationType03);
            $tpl->set('s', 'PAGINATIONTYPE04', $sPaginationType04);
            $tpl->set('s', 'PAGINATIONTYPE05', $sPaginationType05);
        } else {
            
            if ($aSettings['UseDefaultText'] == 'enabled' && $aSettings['DefaultTextArticle'] == '' && $aSettings['DefaultTextFreeText'] != '') {
                $tpl->set('s', 'DEFAULTTEXT', '<p class="articlelistDefaultText">'.$aSettings['DefaultTextFreeText'].'</p>');
            } elseif ($aSettings['UseDefaultText'] == 'enabled' && $aSettings['DefaultTextArticle'] != '') {
                cInclude('classes', 'class.article.php');
                $lIDCatArt = str_replace('art_', '', $aSettings['DefaultTextArticle']);
                $oArt      = new Article($lIDCatArt, $client, $lang);
                $sContent  = $oArt->getContent('html', 1);
                $tpl->set('s', 'DEFAULTTEXT', $sContent);
            } else {
                $tpl->set('s', 'DEFAULTTEXT', '');
            }
            $tpl->set('s', 'PAGINATIONTYPE01', '');
            $tpl->set('s', 'PAGINATIONTYPE02', '');
            $tpl->set('s', 'PAGINATIONTYPE03', '');
            $tpl->set('s', 'PAGINATIONTYPE04', '');
            $tpl->set('s', 'PAGINATIONTYPE05', '');
            $tpl->set('s', 'OVERVIEWLINK',     '');
        }
        if ($aSettings['UseArtListHeadline'] == 'enabled' && $aSettings['ArtListHeadline'] != '') {
            if ($aSettings['UseUTF8Decoding'] != 'enabled') {
                $sArtListHeadline = urldecode($aSettings['ArtListHeadline']);
            } else {
                $sArtListHeadline = html_entity_decode_utf8(urldecode($aSettings['ArtListHeadline']));
            }
            $tpl->set('s', 'TITLE', $sArtListHeadline);
        } else {
            $tpl->set('s', 'TITLE', '');
        }
        $tpl->generate($aSettings['Template']);
    }
    // Clearing memory
    unset ($aData);
    unset ($aSettings);
    unset ($i);
    unset ($lCount);
    unset ($bDebug);
    unset ($db5);
} elseif ($bDebug) {
    echo '<strong>'.$aSettings['ShowModul'].'</strong>', chr(10);
} else {
    // do nothing
}
?>