seit Jahren habe ich das Script {RANDOMCP:xxx} unter PHP 5.6 im Einsatz, welches bei jedem Seitenaufruf aus einem verborgenen Artikel einen ContentPart "zufällig" heraussucht und im aktuellen Artikel ablegt.
Das klappte auch ohne Probleme, bis jetzt

Nun zwingt mich 1und1 aber auf PHP 7.2 umzustellen ... und nun ist es Essig mit dem Script.
Es wird nun nur noch eine weisse Seite ausgegeben. Das ist mehr als suboptimal!
Wenn mal 'jemand mit höheren Weihen' über das Script sehen könnte, ob ggf. nicht mehr unterstützte Begriffe verwendet werden, die durch andere ersetzt werden müßten ... ich wäre sehr dankbar für jede Hilfe

Code: Select all
<?php
//----------------------------------------------------------------------------------------------
// {RANDOMCP:article_id}
// DESCRIPTION: Shows a random content part from within a given article
// (you supply the article ID - it shows a random content part from within that article).
// AUTHOR: Jens Zetterström
// ADAPTED BY: pSouper
// INSTALLATION: Put the code in frontend_render (for example in a file called random_cp.php)
// Note: If the article content part contains replacement tags (for example {SITE}),
// they will not be replaced because code in frontend_render is executed after those
// replacement tags already have been processed. To fix, put the code in
// content.article.inc.php instead.
// USAGE: {RANDOMCP:article_id}
// where article_id is the id of the ARTICLE.
// RCS: Set article to invisible, but CPs to visible!
//----------------------------------------------------------------------------------------------
// ------------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
die("You Cannot Access This Script Directly, Have a Nice Day."); }
// ------------------------------------------------------------------
// RCS inserted 03.11.08
function random_cp($aid, $db) {
$CNT_TMP = '';
$template_default = $GLOBALS["template_default"];
$sql = "SELECT * " .
"FROM " . DB_PREPEND . "phpwcms_articlecontent " .
"INNER JOIN " . DB_PREPEND . "phpwcms_article ON " . DB_PREPEND . "phpwcms_article.article_id = " . DB_PREPEND . "phpwcms_articlecontent.acontent_aid " .
"WHERE acontent_aid = " . $aid . " " .
"AND acontent_visible = 1 " .
"AND acontent_trash = 0 " .
"AND " . DB_PREPEND . "phpwcms_article.article_deleted=0 AND ".DB_PREPEND."phpwcms_article.article_begin < NOW() " .
// The line below is deleted as it introduces a bug that stops it showing random CP's - not sure why, help?
// "AND " . DB_PREPEND . "phpwcms_article.article_end > NOW() ";
"ORDER BY RAND()";
if($cresult = mysql_query($sql, $db) or die("error retrieving article from database")) {
if($crow = mysql_fetch_array($cresult)) {
// echo "<pre>";print_r($crow);echo"</pre>";
// Space before
if($crow["acontent_before"]) {
$CNT_TMP .= '<div style="margin:' . $crow["acontent_before"] . 'px 0 0 0; padding:0 0 0 0; clear:both;"></div>';
}
// include content part code section
include("include/inc_front/content/cnt" . $crow["acontent_type"] . ".article.inc.php");
// check if top link should be shown
if($crow["acontent_top"]) {
if($template_default["article"]["top_sign_before"].$template_default["article"]["top_sign_after"]) {
$CNT_TMP .= $template_default["article"]["top_sign_before"];
$CNT_TMP .= '<a href="#top">'.$template_default["article"]["top_sign"].'</a>';
$CNT_TMP .= $template_default["article"]["top_sign_after"];
}
else {
$CNT_TMP .= '<br /><a href="#top">' . $template_default["article"]["top_sign"] . '</a>';
}
}
// Space after
if($crow["acontent_after"]) {
$CNT_TMP .= '<div style="margin:0 0 ' . $crow["acontent_before"] . 'px 0; padding:0 0 0 0; clear:both;"></div>';
}
}
}
return $CNT_TMP;
}
if( ! ( strpos($content["all"],'{RANDOMCP:')===false ) ) {
$content["all"] = preg_replace('/\{RANDOMCP:(.*?)\}/ie', 'random_cp("$1", $db);', $content["all"]);
// $content["all"] = (psTagParser ($content["all"])); // RCS commented 03.11.08
}
?>