'.LF.''; $content['alink']['alink_template'] .= '
  • {TITLE}
  • '; $content['alink']['alink_template'] .= ''.LF.''; $content['alink']['alink_template'] .= ''.LF.''; } $content['alink']['tags_group_by'] = ''; $content['alink']['tags_where'] = ''; $content['alink']['date_basis'] = 'article_date'; $alink_sql = "SELECT ar.*, UNIX_TIMESTAMP(ar.article_tstamp) AS article_date FROM ".DB_PREPEND."phpwcms_article ar "; // select by category if(count($content['alink']['alink_category'])) { $content['alink']['tags_sql'] = array(); // and/or/not mode switch($content['alink']['alink_andor']) { case 'AND': $content['alink']['alink_andor'] = ' AND '; $content['alink']['alink_compare'] = '='; break; case 'NOT': $content['alink']['alink_andor'] = ' AND '; $content['alink']['alink_compare'] = '!='; break; default: //OR $content['alink']['alink_andor'] = ' OR '; $content['alink']['alink_compare'] = '='; } foreach($content['alink']['alink_category'] as $value) { $content['alink']['tags_sql'][] = 'pcat.cat_name' . $content['alink']['alink_compare'] . "'" . aporeplace($value) . "'"; } // JOIN with tags/categories for articles $alink_sql .= "LEFT JOIN ".DB_PREPEND."phpwcms_categories pcat ON (pcat.cat_type='article' AND pcat.cat_pid=ar.article_id) "; $content['alink']['tags_where'] = 'AND (' . implode($content['alink']['alink_andor'], $content['alink']['tags_sql']) . ') '; // group by article ID $content['alink']['tags_group_by'] = ' GROUP BY ar.article_id'; } $alink_sql .= "WHERE ar.article_public=1 AND ar.article_aktiv=1 AND ar.article_deleted=0 "; $alink_sql .= "AND ar.article_begin < NOW() AND ar.article_end > NOW() "; // add possible WHERE clauses when tags/categories are used $alink_sql .= $content['alink']['tags_where']; if(empty($content['alink']['alink_type'])) { if(!empty($content['alink']['alink_unique']) && count($content['UNIQUE_ALINK'])) { $content['alink']['alink_id'] = array_diff($content['alink']['alink_id'], $content['UNIQUE_ALINK']); $alink_sql .= count($content['alink']['alink_id']) ? 'AND ar.article_id IN ('.implode(',', $content['alink']['alink_id']) . ')' : ' AND 0 '; } else { $alink_sql .= 'AND ar.article_id IN ('.implode(',', $content['alink']['alink_id']) . ')'; } // group by - when used with categories/tags $alink_sql .= $content['alink']['tags_group_by']; } else { if(is_array($content['alink']['alink_level']) && count($content['alink']['alink_level'])) { $alink_sql .= 'AND ar.article_cid IN ('.implode(',', $content['alink']['alink_level']) . ')'; if(!empty($content['alink']['alink_unique']) && count($content['UNIQUE_ALINK'])) { $alink_sql .= ' AND ar.article_id NOT IN ('.implode(',', $content['UNIQUE_ALINK']) . ')'; } } // group by - when used with categories/tags $alink_sql .= $content['alink']['tags_group_by']; // don't use SQL UNION $sql_union = ''; // add prio sorting value if(empty($content['alink']['alink_prio'])) { $sql_prio = ''; $sql_union_prio = ''; } else { $sql_prio = 'ar.article_priorize DESC, '; $sql_union_prio = 'article_priorize DESC, '; } switch($content['alink']['alink_type']) { case 1: // create date, DESC $content['alink']['date_basis'] = 'article_created'; $alink_sql .= " ORDER BY ".$sql_prio."ar.article_created DESC"; break; case 2: // create date, ASC $content['alink']['date_basis'] = 'article_created'; $alink_sql .= " ORDER BY ".$sql_prio."ar.article_created ASC"; break; case 3: // change date, DESC $alink_sql .= " ORDER BY ".$sql_prio."ar.article_tstamp DESC"; break; case 4: // change date, ASC $alink_sql .= " ORDER BY ".$sql_prio."ar.article_tstamp ASC"; break; case 5: // live date, DESC $alink_sql .= " ORDER BY ".$sql_prio."ar.article_begin DESC"; break; case 6: // live date, ASC $alink_sql .= " ORDER BY ".$sql_prio."ar.article_begin ASC"; break; case 7: // kill date, DESC $alink_sql .= " ORDER BY ".$sql_prio."ar.article_end DESC"; break; case 8: // kill date, ASC $alink_sql .= " ORDER BY ".$sql_prio."ar.article_end ASC"; break; case 18: // article title, DESC $alink_sql .= " ORDER BY ".$sql_prio."ar.article_title DESC"; break; case 19: // article title, ASC $alink_sql .= " ORDER BY ".$sql_prio."ar.article_title ASC"; break; case 9: // random $alink_sql .= " ORDER BY RAND()"; break; case 10: // random, create date, DESC $alink_sql .= " ORDER BY RAND()"; $sql_union .= " ORDER BY ".$sql_union_prio."article_created DESC"; break; case 11: // random, create date, ASC $alink_sql .= " ORDER BY RAND()"; $sql_union .= " ORDER BY ".$sql_union_prio."article_created ASC"; break; case 12: // random, change date, DESC $alink_sql .= " ORDER BY RAND()"; $sql_union .= " ORDER BY ".$sql_union_prio."article_tstamp DESC"; break; case 13: // random, change date, ASC $alink_sql .= " ORDER BY RAND()"; $sql_union .= " ORDER BY ".$sql_union_prio."article_tstamp ASC"; break; case 14: // random, live date, DESC $alink_sql .= " ORDER BY RAND()"; $sql_union .= " ORDER BY ".$sql_union_prio."article_begin DESC"; break; case 15: // random, live date, ASC $alink_sql .= " ORDER BY RAND()"; $sql_union .= " ORDER BY ".$sql_union_prio."article_begin ASC"; break; case 16: // random, kill date, DESC $alink_sql .= " ORDER BY RAND()"; $sql_union .= " ORDER BY ".$sql_union_prio."article_end DESC"; break; case 17: // random, kill date, ASC $alink_sql .= " ORDER BY RAND()"; $sql_union .= " ORDER BY ".$sql_union_prio."article_end ASC"; break; case 20: // random, kill date, DESC $alink_sql .= " ORDER BY RAND()"; $sql_union .= " ORDER BY ".$sql_union_prio."article_title DESC"; break; case 21: // random, kill date, ASC $alink_sql .= " ORDER BY RAND()"; $sql_union .= " ORDER BY ".$sql_union_prio."article_title ASC"; break; } if(!empty($content['alink']['alink_max']) && intval($content['alink']['alink_max'])) { $alink_sql .= " LIMIT ".intval($content['alink']['alink_max']); } if($sql_union != '') { $alink_sql = '('.$alink_sql.') UNION DISTINCT ('.$alink_sql.')'.$sql_union; if(!empty($content['alink']['alink_max']) && intval($content['alink']['alink_max'])) { $alink_sql .= " LIMIT ".intval($content['alink']['alink_max']); } } } $content['alink']['tr'] = array(); $content['alink']['alink_template_head'] = get_tmpl_section('TEASER_HEAD', $content['alink']['alink_template']); $content['alink']['alink_template_footer'] = get_tmpl_section('TEASER_FOOTER', $content['alink']['alink_template']); $content['alink']['alink_template_entry'] = get_tmpl_section('TEASER_ENTRY', $content['alink']['alink_template']); $content['alink']['alink_template_space'] = get_tmpl_section('TEASER_SPACER', $content['alink']['alink_template']); $content['alink']['alink_template_head'] = str_replace('{LINK_ARTICLE_CLASS}', get_class_attrib($template_default["article"]["link_article_class"]), $content['alink']['alink_template_head']); $content['alink']['result'] = _dbQuery($alink_sql); if(count($content['alink']['result'])) { // before finding a faster solution... if(!empty($content['alink']['alink_type'])) { $content['alink']['alink_id'] = array(); foreach($content['alink']['result'] as $value) { $content['alink']['alink_id'][] = $value['article_id']; } } foreach($content['alink']['alink_id'] as $key => $value) { $content['UNIQUE_ALINK'][$value] = $value; //save UNIQUE Teaser ID foreach($content['alink']['result'] as $row) { if($value == $row['article_id'] && isset($content['struct'][ $row['article_cid'] ])) { // enable frontend edit link $content['alink']['tr'][$key] = getFrontendEditLink('summary', $row["article_id"]); $content['alink']['tr'][$key] .= $content['alink']['alink_template_entry']; $content['alink']['tr'][$key] = str_replace('{ARTICLEID}', $row['article_id'], $content['alink']['tr'][$key]); $content['alink']['tr'][$key] = str_replace('{CATEGORYID}', $row['article_cid'], $content['alink']['tr'][$key]); $content['alink']['tr'][$key] = render_cnt_template($content['alink']['tr'][$key], 'MENUTITLE', html_specialchars($row['article_menutitle'])); $content['alink']['tr'][$key] = render_cnt_template($content['alink']['tr'][$key], 'TITLE', html_specialchars($row['article_title'])); $content['alink']['tr'][$key] = render_cnt_template($content['alink']['tr'][$key], 'SUBTITLE', html_specialchars($row['article_subtitle'])); $content['alink']['tr'][$key] = render_cnt_date($content['alink']['tr'][$key], $row[ $content['alink']['date_basis'] ], strtotime($row['article_begin']), strtotime($row['article_end'])); $content['alink']['tr'][$key] = render_cnt_template($content['alink']['tr'][$key], 'PRIO', empty($row['article_priorize']) ? '' : $row['article_priorize']); $row['article_image'] = unserialize( $row['article_image'] ); // article list image if(strpos($content['alink']['tr'][$key], 'IMAGE') !== false) { $img_thumb_name = ''; $img_thumb_rel = ''; $img_thumb_abs = ''; $img_thumb_width = 0; $img_thumb_height = 0; $row['article_image'] = setArticleSummaryImageData( $row['article_image'] ); // check if image available if(!empty($row['article_image']['list_id'])) { if(!empty($content['alink']['alink_width'])) $row['article_image']['list_width'] = $content['alink']['alink_width']; if(!empty($content['alink']['alink_height'])) $row['article_image']['list_height'] = $content['alink']['alink_height']; // build image/image link $content['alink']['poplink'] = ''; $thumb_image = false; $thumb_img = ''; $content['alink']['caption'] = getImageCaption($row['article_image']['list_caption']); $row['article_image']['list_caption'] = $content['alink']['caption'][0]; // caption text if(!empty($row['article_image']['list_hash'])) { $content['alink']['alink_crop'] = empty($content['alink']['alink_crop']) ? 0 : 1; $thumb_image = get_cached_image( array( "target_ext" => $row['article_image']['list_ext'], "image_name" => $row['article_image']['list_hash'] . '.' . $row['article_image']['list_ext'], "max_width" => $row['article_image']['list_width'], "max_height" => $row['article_image']['list_height'], "thumb_name" => md5( $row['article_image']['list_hash']. $row['article_image']['list_width']. $row['article_image']['list_height']. $GLOBALS['phpwcms']['sharpen_level']. $content['alink']['alink_crop'] ), 'crop_image' => $content['alink']['alink_crop'] )); if($thumb_image != false) { $content['alink']['caption'][3] = empty($content['alink']['caption'][3]) ? '' : ' title="'.html_specialchars($content['alink']['caption'][3]).'"'; $content['alink']['caption'][1] = html_specialchars($content['alink']['caption'][1]); $thumb_img = ''.$content['alink']['caption'][1].''; $img_thumb_name = $thumb_image[0]; $img_thumb_rel = PHPWCMS_IMAGES.$thumb_image[0]; $img_thumb_abs = PHPWCMS_URL.PHPWCMS_IMAGES.$thumb_image[0]; $img_thumb_width = $thumb_image[1]; $img_thumb_height = $thumb_image[2]; } } $content['alink']['tr'][$key] = render_cnt_template($content['alink']['tr'][$key], 'IMAGE', $thumb_img); } else { $content['alink']['tr'][$key] = render_cnt_template($content['alink']['tr'][$key], 'IMAGE', ''); } // replace thumbnail and zoom image information $content['alink']['tr'][$key] = str_replace( array( '{THUMB_NAME}', '{THUMB_REL}', '{THUMB_ABS}', '{THUMB_WIDTH}', '{THUMB_HEIGHT}' ), array( $img_thumb_name, $img_thumb_rel, $img_thumb_abs, $img_thumb_width, $img_thumb_height ), $content['alink']['tr'][$key] ); // Image Caption $content['alink']['tr'][$key] = render_cnt_template($content['alink']['tr'][$key], 'CAPTION', empty($row['article_image']['list_caption']) ? '' : html_specialchars($row['article_image']['list_caption'])); } // article summary if(strpos($content['alink']['tr'][$key], 'SUMMARY') !== false) { if(empty($content['alink']['alink_wordlimit']) && !empty($row['article_image']['list_maxwords'])) { $content['alink']['alink_wordlimit'] = $row['article_image']['list_maxwords']; } $row['article_summary'] = empty($content['alink']['alink_allowedtags']) ? strip_tags($row['article_summary']) : strip_tags($row['article_summary'], $content['alink']['alink_allowedtags']); if(!empty($content['alink']['alink_wordlimit'])) { $row['article_summary'] = getCleanSubString($row['article_summary'], $content['alink']['alink_wordlimit'], $template_default['ellipse_sign'], 'word'); } $content['alink']['tr'][$key] = render_cnt_template($content['alink']['tr'][$key], 'SUMMARY', $row['article_summary']); } $content['alink']['tr'][$key] = str_replace('{ARTICLELINK}', 'index.php?'.setGetArticleAid($row), $content['alink']['tr'][$key]); // article category $content['alink']['tr'][$key] = render_cnt_template($content['alink']['tr'][$key], 'CATEGORY', html_specialchars($content['struct'][ $row['article_cid'] ]['acat_name'])); break; } } } } // combine all teaser items if(count($content['alink']['tr'])) { $content['alink']['tr'] = implode($content['alink']['alink_template_space'], $content['alink']['tr']); $content['alink']['teaser'] = ' '; } else { $content['alink']['tr'] = ''; $content['alink']['teaser'] = ''; } // put all template and content into one $content['alink']['alink_template'] = LF . $content['alink']['alink_template_head'] . $content['alink']['tr'] . $content['alink']['alink_template_footer'] . LF; // render teaser elements - throw everything between [TEASER]...[/TEASER] $content['alink'] = render_cnt_template($content['alink']['alink_template'], 'TEASER', $content['alink']['teaser']); // render title $content['alink'] = render_cnt_template($content['alink'], 'TITLE', html_specialchars($crow['acontent_title'])); $content['alink'] = render_cnt_template($content['alink'], 'SUBTITLE', html_specialchars($crow['acontent_subtitle'])); $CNT_TMP .= $content['alink']; } ?>