[PHP]
if ( $GLOBALS['LEVEL_ID'][2] == 13 ) echo '{WRAP_SHOW_CONTENTX:CP,104}';
[/PHP]
Mit dem eingebauten SHOW_CONTENT würde PHP-Code im CP 104 nicht mehr abgearbeitet.
\\
===== Code: =====
**Datei:** template/inc_script/frontend_render/rt_wrap_show_contentx.php
fallback to the default class
//
// Default class: WRAP_SHOW_CONTENTX
//
// file name: /template/inc_script/frontend_render/rt_WRAP_SHOW_CONTENTX.php
// forum: http://forum.phpwcms.org/viewtopic.php?p=112725#p112725
//
// (c) 07.11.08 Knut Heermann (flip-flop) http://planmatrix.de
// 08.11.08 Updated for a better handling
// 16.01.09 Enhanced WRAP_SHOW_CONTENT: to display unvisible CPs
// 11.01.11 Update parse SHOW_CONTENT a second time
// ==================================================================
// ------------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
die("You Cannot Access This Script Directly, Have a Nice Day."); }
// ------------------------------------------------------------------
if( strpos($content['all'], '{WRAP_SHOW_CONTENTX:') !== FALSE ) {
/*
* {SHOW_CONTENT}
* thanks to Jens Zetterström who has initiated this in 2005
* Shows the content of the article content part with the specified id.
* use it {SHOW_CONTENT:MODE,id[,id[,...]]}
* where MODE is what should returned
* and id is the corresponding ID
* MODE options:
* CP - list of Content Parts | id = id of the content part, one or more possible, comma seperated.
* CPA - ascending list of Content Parts but based on selected article | id = id of article, comma seperated
* CPAD - same as CPA, but descending
* AS - list of Article Summaries | id = id of articles, comma separated
*
*/
function showSelectedContentX($param='') {
global $template_default;
global $db;
global $content;
global $block;
global $phpwcms;
global $aktion;
$topcount = 999999;
$template = '';
if($cp = explode(',', $param)) {
$mode = strtoupper(trim($cp[0]));
if(substr($mode, 0, 2) == 'AS') {
$mode = explode('|', $cp[0]);
if(isset($mode[1])) {
$mode[1] = trim($mode[1]);
if(is_numeric($mode[1])) {
$topcount = intval($mode[1]);
} elseif(empty($mode[2]) && strlen($mode[1]) > 4 && ($mode[1] == 'default' || is_file(PHPWCMS_TEMPLATE.'inc_cntpart/articlesummary/list/'.$mode[1]))) {
$template = $mode[1];
}
}
if(isset($mode[2])) {
$mode[2] = trim($mode[2]);
if(is_numeric($mode[2])) {
$topcount = intval($mode[2]);
} elseif(strlen($mode[2]) > 4 && ($mode[2] == 'default' || is_file(PHPWCMS_TEMPLATE.'inc_cntpart/articlesummary/list/'.$mode[2]))) {
$template = $mode[2];
}
}
$mode = strtoupper(trim($mode[0]));
if(isset($cp[1])) { // now check if
$cp[1] = trim($cp[1]);
if(!is_numeric($cp[1])) {
switch($cp[1]) {
case 'new': $cp = array('new' => 1); break;
case 'random': $cp = array('random' => 1); break;
case 'related': if(isset($cp[2])) {
unset($cp[0], $cp[1]);
$related = array();
foreach($cp as $value) {
$related[] = "article_keyword LIKE '%".aporeplace(strtoupper(trim($value)))."%'";
}
$cp = array('related' => 1); break;
}
default: $cp = array('new' => 1);
}
}
}
}
unset($cp[0]);
foreach($cp as $key => $value) {
$value = intval($value);
if(!$value) {
unset($cp[$key]);
} else {
$cp[$key] = $value;
}
}
if(!is_array($cp) || !count($cp)) {
return '';
}
} else {
// oh no ID given, end function
return '';
}
$CNT_TMP = '';
if(substr($mode, 0, 2) == 'AS') {
if(substr($mode, -1) == 'P') {
$mode = substr($mode, 0, -1);
$priorize = 'article_priorize DESC, ';
} else {
$priorize = '';
}
switch($mode) {
case 'ASL': $sort = $priorize.'article_begin ASC'; break; // sorted by livedate ascending
case 'ASLD': $sort = $priorize.'article_begin DESC'; break; // sorted by livedate descending
case 'ASK': $sort = $priorize.'article_end ASC'; break; // sorted by killdate ascending
case 'ASKD': $sort = $priorize.'article_end DESC'; break; // sorted by killdate descending
case 'ASC': $sort = $priorize.'article_tstamp ASC'; break; // sorted by change date ascending
case 'ASCD': $sort = $priorize.'article_tspamp DESC'; break; // sorted by change date descending
case 'ASR': $sort = 'RAND()'; break; // random sort
default: $sort = '';
}
$CNT_TMP = list_articles_summary( get_article_data( $cp, $topcount, $sort ) , $topcount, $template);
} elseif($mode == 'CP' || $mode == 'CPA' || $mode == 'CPAD') {
$sort = ($mode=='CPAD') ? ' DESC' : ''; //means ASCENDING
foreach($cp as $value) {
if($mode == 'CP') {
// content part listing
$sql = "SELECT * FROM " . DB_PREPEND . "phpwcms_articlecontent ";
$sql .= "INNER JOIN " . DB_PREPEND . "phpwcms_article ON ";
$sql .= DB_PREPEND . "phpwcms_article.article_id = " . DB_PREPEND . "phpwcms_articlecontent.acontent_aid ";
// $sql .= "WHERE acontent_id = " . $value . " AND acontent_visible = 1 "; -kh
$sql .= "WHERE acontent_id = " . $value . " ";
if( !FEUSER_LOGIN_STATUS ) {
$sql .= 'AND acontent_granted=0 ';
}
$sql .= "AND acontent_trash = 0 AND " . DB_PREPEND . "phpwcms_article.article_deleted=0 AND ";
$sql .= DB_PREPEND."phpwcms_article.article_begin < NOW() AND " . DB_PREPEND . "phpwcms_article.article_end > NOW() ";
$sql .= "LIMIT 1";
} else {
// content parts based on article ID
$sql = "SELECT * FROM ".DB_PREPEND."phpwcms_articlecontent ";
// $sql .= "WHERE acontent_aid=". $value." AND acontent_visible=1 AND acontent_trash=0 "; // -kh
$sql .= "WHERE acontent_aid=". $value." AND acontent_trash=0 ";
if( !FEUSER_LOGIN_STATUS ) {
$sql .= 'AND acontent_granted=0 ';
}
$sql .= "ORDER BY acontent_sorting".$sort.", acontent_id";
}
if($cresult = mysql_query($sql, $db)) {
while($crow = mysql_fetch_assoc($cresult)) {
if($crow["acontent_type"] == 30 && !isset($phpwcms['modules'][$crow["acontent_module"]])) {
continue;
}
if($crow["acontent_type"] == 24) {
// first retrieve alias ID information and settings
$crow = getContentPartAlias($crow);
}
$space = getContentPartSpacer($crow["acontent_before"], $crow["acontent_after"]);
// Space before
$CNT_TMP .= $space['before'];
// set frontend edit link
$CNT_TMP .= getFrontendEditLink('CP', $crow['acontent_aid'], $crow['acontent_id']);
// include content part code section
if($crow["acontent_type"] != 30) {
include(PHPWCMS_ROOT.'/include/inc_front/content/cnt' . $crow["acontent_type"] . '.article.inc.php');
} elseif($crow["acontent_type"] == 30 && file_exists($phpwcms['modules'][$crow["acontent_module"]]['path'].'inc/cnt.article.php')) {
$CNT_TMP .= getFrontendEditLink('module', $phpwcms['modules'][$crow["acontent_module"]]['name']);
// now try to include module content part code
include($phpwcms['modules'][$crow["acontent_module"]]['path'].'inc/cnt.article.php');
}
//check if top link should be shown
$CNT_TMP .= getContentPartTopLink($crow["acontent_top"]);
//Maybe content part ID should b used inside templates or for something different
$CNT_TMP = str_replace( array('[%CPID%]', '{CPID}'), $crow["acontent_id"], $CNT_TMP );
// trigger content part functions
$CNT_TMP = trigger_cp($CNT_TMP, $crow);
// Space after
$CNT_TMP .= $space['after'];
}
mysql_free_result($cresult);
}
}
}
if(empty($phpwcms["allow_cntPHP_rt"])) {
$CNT_TMP = remove_unsecure_rptags($CNT_TMP);
//+KH: 05.04.2010
} else
// include external PHP script (also normal HTML snippets) or return PHP var value +KH: 04.04.2010
$CNT_TMP = render_PHPcode($CNT_TMP);
// parses all system RTs
$CNT_TMP = html_parser($CNT_TMP);
// Special for eMail mailto:....
if ( ($phpwcms["allow_ext_render"]) AND (strpos($CNT_TMP, 'mailto:') != false) ) {
// try to include custom functions and replacement tags or what you want to do at this point of the script
// default dir: "phpwcms_template/inc_script/frontend_render"; only *.php files are allowed there
if ( is_file(PHPWCMS_TEMPLATE.'inc_script/frontend_render/makeEmailSpamSave.php') ) {
include_once(PHPWCMS_TEMPLATE.'inc_script/frontend_render/makeEmailSpamSave.php');
$CNT_TMP = replaceEmailAddress($CNT_TMP);
}
}
return $CNT_TMP;
}
function func_WRAP_SHOW_CONTENTX($my_param) {
$my_param = str_replace(' ','',$my_param); // kill all spaces
// explode parameter for SHOW_CONTENT and the optional class name
// $my_arr[0] = SHOW_CONTENT parameter
// $my_arr[1] = optional own class name
$my_arr = explode(":",$my_param);
if (!empty($my_arr[1])) { $my_class = $my_arr[1]; } // custom class name = yes
else {$my_class = 'WRAP_SHOW_CONTENTX'; } // custom class name = no -> default name
// set the wrapper code
$div_before = ''.LF;
$div_behind = LF.'';
$string = '';
$string = showSelectedContentX($my_arr[0]); // same as SHOW_CONTENT
// +KH 19.01.11 parse SHOW_CONTENT a second time
while (strpos($string, '{SHOW_CONTENT:') != false)
$string = preg_replace('/\{SHOW_CONTENT:(.*?)\}/e', 'showSelectedContent("$1");', $string);
// Set the wrapper around
if (!$string == '') { $my_replace = $div_before.$string.$div_behind; }
else { $my_replace = ''; }
return $my_replace;
}
// And do it ======
$content["all"] = preg_replace('/{WRAP_SHOW_CONTENTX:(.*?)}/e', 'func_WRAP_SHOW_CONTENTX("$1")', $content["all"]);
}
?>