bin gerade ein wenig beim verzweifeln da ich array_multisort nicht sortieren kann (Fehlermeldung)
Kurz der Vorgang danach mein Code. Ich habe mir zu Lernzwecken einen Terminmodul und einen Nachrichtenmodul geschrieben, beide mit unterschiedlichen Feldern. Dazu habe ich mir ein ArtikelViewer geschrieben der auf beide Kategorien geht und die Artikel dann anzeigt. Ich bin soweit das ich im SQL steuern kann das erst die Termine dann die nachrichten als eine Liste angezeigt werden. Jetzt mein Hauptproblem, in den Terminen oder Nachrichten möchte ich dann nochmals nach einer Sortdate (den ich als MussFeld in der Eingabeformular und DB habe) sortieren. Diese mache ich über array_mustisort danach knallt es. Ich bekomme die Fehlermeldung:
Warning: array_multisort() [function.array-multisort]: Argument #5 is expected to be an array or a sort flag in /srv/www/vhosts/str0.de/subdomains/ctd0/httpdocs/cms/front_content.php(882) : eval()'d code on line 984
bzw. hin und wieder " Warning: array are inconsistence"
Ich bekomme das nicht hin und kann mir gerade kein reim machen nach all den Posts den ich hier gelesen habe und Sortieren nach sortdate möchte ich schon.
Ich hoffe das mir jemand ein Tip hat, danke mal im Voraus.
Code: Alles auswählen
<?
/*******************************************************
*
* System : Contenido v4.6.23
* Module : OUTPUT
* Version : v0.7
* Description : List Articles for Due Dates
********************************************************/
#Includes
cInclude('classes', 'class.template.php');
#Initiliaze template object
if (!is_object($tpl)) {
$tpl = new Template;
}
$tpl->reset();
#Find current DueDate
$findDates=0;
#Current Date
$curDate = date("Y-m-d");
unset ($aData);
$aData = array();
# Base settings
unset ($aSettings);
$aSettings = array();
$aSettings["ArticleCount"] = "CMS_VALUE[0]";
$aSettings["ArticlePerPage"] = "CMS_VALUE[1]";
$aSettings["SortBy"] = "CMS_VALUE[2]";
$aSettings["SortDir"] = "CMS_VALUE[3]";
$aSettings["ShowStart"] = "CMS_VALUE[4]";
$aSettings["Category"] = "CMS_VALUE[5]";
$aSettings["HeadlineIdentifier"] = "CMS_VALUE[7]";
$aSettings["HeadlineLength"] = "CMS_VALUE[8]";
$aSettings["Elements"] = "CMS_VALUE[9]";
$aSettings["CatTypeSel"] = "CMS_VALUE[10]";
$aSettings["AddCats"] = "CMS_VALUE[11]";
# Checking base settings
if (!is_numeric($aSettings["ArticleCount"]) || $aSettings["ArticleCount"] < 0) {
$aSettings["ArticleCount"] = 5;
}
if (!is_numeric($aSettings["ArticlePerPage"]) || $aSettings["ArticlePerPage"] < 0) {
$aSettings["ArticlePerPage"] = 0; // Deactivating page browsing
}
if ($aSettings["ArticlePerPage"] == 0 || !is_numeric($_REQUEST["nextstep"])) {
$_REQUEST["nextstep"] = 0;
}
if (!is_numeric($aSettings["Category"]) || $aSettings["Category"] <= 0) {
$aSettings["Category"] = 0;
}
if (strlen($aSettings["HeadlineIdentifier"]) > 50) {
$aSettings["HeadlineIdentifier"] = "";
}
if (!is_numeric($aSettings["HeadlineLength"]) || $aSettings["HeadlineLength"] < 0) {
$aSettings["HeadlineLength"] = 0;
}
if (!is_numeric($aSettings["Elements"]) || $aSettings["Elements"] < 0) {
$aSettings["Elements"] = 0;
}
if ($aSettings["CatTypeSel"] == "" || ($aSettings["AddCats"] == "" && $aSettings["CatTypeSel"] == "selected")) {
$aSettings["CatTypeSel"] = "none";
}
# Specifying search categories
$sSelCats = "'".$aSettings["Category"]."'";
# Adding categories "below" primary category
switch ($aSettings["CatTypeSel"]) {
case "below":
$lCatLevel = -1;
$sql = "SELECT a.idcat AS idcat, b.level AS level FROM ".$cfg["tab"]["cat"]." a, ".$cfg["tab"]["cat_tree"]." b ";
$sql .= "WHERE a.idcat = b.idcat ORDER BY b.idtree";
$db2->query($sql);
while($db2->next_record()) {
if ($db2->f("idcat") == $aSettings["Category"]) {
$lCatLevel = $db2->f("level");
} else if ($lCatLevel > -1 && $db2->f("level") > $lCatLevel) {
$sSelCats .= ",'".$db2->f("idcat")."'";
} else if ($db2->f("level") <= $lCatLevel) {
break;
}
}
break;
case "selected":
$aCats = explode(",",$aSettings["AddCats"]);
foreach ($aCats as $value) {
if (is_numeric($value)) {
$sSelCats .= ",'".$value."'";
}
}
break;
default:
}
#Get all Articles from Categories there are not start articles and Articlelist view
$sql_getArticle = "SELECT ARTLANG.idart,
CONTENT.value,
CONTENT.typeid,
CONTENT.idcontent,
CONTENT.created,
CATART.idcat
FROM ".$cfg["tab"]["cat_art"]." AS CATART,
".$cfg["tab"]["art_lang"]." AS ARTLANG,
".$cfg["tab"]["cat"]." AS CAT,
".$cfg["tab"]["content"]." AS CONTENT
WHERE ARTLANG.idart = CATART.idart AND
CATART.idcat IN (".$sSelCats.") AND
ARTLANG.idartlang = CONTENT.idartlang AND
ARTLANG.idlang = '".$lang."' AND
CAT.idcat = '".$idcat."' AND
CAT.idclient = '".$client."' AND
ARTLANG.online = '1' AND
CATART.is_start = '0'
ORDER BY
CATART.idcat, ARTLANG.created, ARTLANG.idart, CONTENT.typeid ASC";
$db->query($sql_getArticle);
//echo $sql_getArticle;
#Check Counter and countresult
$j=0;
$anz=0;
#If we have a result get up the Code, otherwise build a text no records found
if ($db->num_rows() != 0)
{
#set array to build up the due dates in array
$dueDates = array(array());
#loop records about the SQL_query
while ($j < $db->num_rows())
{
$db->next_record();
if ($db->f("idart") > $dueDates["idart"][$anz])
{
$anz++;
}
$dueDates[$anz]["Link"] = $sess->url("front_content.php?idcat=".$db->f("idcat")."&idart=".$db->f("idart"));;
switch ($db->f("typeid")) {
case 0: #Start due date
$dueDates["startDate"][$anz] = $db->f("value");
$dueDates["startYear"][$anz] = substr($db->f("value"),0,4);
$dueDates["startMonth"][$anz] = substr($db->f("value"),5,2);
$dueDates["startDay"][$anz] = substr($db->f("value"),8,2);
$dueDates["sel_regAkl"][$anz] = $db->f("value"); //NAchricht
$dueDates["idart"][$anz] = $db->f("idart");
$dueDates["idcat"][$anz] = $db->f("idcat");
break;
case 1: #Start time
$dueDates["sel_prio"][$anz] = $db->f("value");
$dueDates["startTime"][$anz] = $db->f("value");
break;
case 2: #End du date
$dueDates["online_ab"][$anz] = $db->f("value");
break;
case 3: #End time
$dueDates["offline_ab"][$anz] = $db->f("value");
break;
case 4: #Location
$dueDates["location"][$anz] = $db->f("value");
$dueDates["vorsatz"][$anz] = $db->f("value");
break;
case 5: #Regionale AKL
$dueDates["location_detail"][$anz] = $db->f("value");
$dueDates["haupttitel"][$anz] = $db->f("value");
break;
case 6: // Title
$dueDates["title"][$anz] = $db->f("value");
$dueDates["untertitel"][$anz] = $db->f("value");
break;
case 7: #subtitle
$dueDates["subTitle"][$anz] = $db->f("value");
$dueDates["nachsatz"][$anz] = $db->f("value");
break;
case 8: #Organizer
$dueDates["organizer"][$anz] = $db->f("value");
$dueDates["terminzeile"][$anz] = $db->f("value");
break;
case 9: #Regionale AKL
$dueDates["regAkl"][$anz] = $db->f("value");
$dueDates["msgSortDate"][$anz] = $db->f("value");
break;
case 10: #Regionale AKL
$dueDates["sortDate"][$anz] = $db->f("value");
$dueDates["msgDescription_1"][$anz] = $db->f("value");
break;
case 11: #Regionale AKL
$dueDates["description_1"][$anz] = $db->f("value");
$dueDates["msgDescription_2"][$anz] = $db->f("value");
break;
case 12: #Regionale AKL
$dueDates["description_2"][$anz] = $db->f("value");
$dueDates["hauptbild"][$anz] = $db->f("value");
break;
}
$j++;
}
array_multisort(
$dueDates["sortDate"], SORT_DESC, SORT_NUMERIC,
$dueDates["idcat"],
$dueDates["Link"],
$dueDates["startDate"],
$dueDates["startYear"],
$dueDates["startMonth"],
$dueDates["startDay"],
$dueDates["sel_regAkl"],
$dueDates["idart"],
$dueDates["sel_prio"],
$dueDates["startTime"],
$dueDates["online_ab"],
$dueDates["offline_ab"],
$dueDates["location"],
$dueDates["vorsatz"],
$dueDates["location_detail"],
$dueDates["haupttitel"],
$dueDates["title"],
$dueDates["untertitel"],
$dueDates["subTitle"],
$dueDates["nachsatz"],
$dueDates["organizer"],
$dueDates["terminzeile"],
$dueDates["regAkl"],
$dueDates["msgSortDate"],
$dueDates["msgDescription_1"],
$dueDates["description_1"],
$dueDates["msgDescription_2"],
$dueDates["description_2"],
$dueDates["hauptbild"]
);
echo " <h2 style='letter-spacing:0.1em'><strong>Veranstaltungen / Aktuelles Regional</strong></h2>";
#Loop whole given resultSets
for ($i=0; $i <= $anz; $i++)
{
$navmod_link =$sess->url("front_content.php?client=".$client."?=".$lang."&idcat=".$idcat."&idart=".$dueDates["idart"][$i]);;
$nav = $sess->url("front_content.php?idcat=".$db->f("idcat")."&idart=".$db->f("idart"));;
if($dueDates["idcat"][$i] == 211) {
echo "<div id='detail' class='subcolumns'>";
echo " <div class='c72l'>";
echo "<!-- Prüfen div #detail und div-Syntax -->";
echo " <div class='subcl'>";
echo " </div>";
echo " </div>";
echo " <div class='c28r'>";
echo " <div class='subcl'>";
echo " </div>";
echo " </div>";
echo " </div>";
echo " <div id='detail'>";
echo " <div>";
echo " <p style='margin: 0 0 0 0'> </p>";
echo " </div>";
echo " </div>";
echo " <div id='detail' class='subcolumns'>";
echo " <div class='c28l'>";
echo " <div class='subcl'>";
echo " </div>";
echo " </div>";
echo " <div class='c72r'>";
echo " <div class='subcl'>";
echo " </div>";
echo " </div>";
echo " </div>";
echo " <div id='detail' class='subcolumns'>";
echo " <div class='c28l'>";
echo " <div class='subcl'> </div>";
echo " </div>";
echo " <div class='c72r'>";
echo " <div class='subcl'> </div>";
echo " </div>";
echo " </div>";
echo " <div id='detail'>";
echo " <div>";
echo " <hr />";
echo " </div>";
echo " </div>";
echo " <div id='detail' class='subcolumns'>";
echo " <div class='c28l'>";
echo " <div class='subcl'>";
echo " <h3 style='margin:0.3em 0 0.9em 0; font-weight:normal'>".$dueDates["startDate"][$i]."</h3>";
echo " </div>";
echo " </div>";
echo " <div class='c72r'>";
echo " <div class='subcl'>";
echo " <h3 style='margin:0.3em 0 0.9em 0'><strong>".$dueDates["title"][$i]."</strong></h3>";
echo "<!-- <p> </p> -->";
echo " <h5 class='blue'>".$dueDates["regAkl"][$i]."</h5>";
echo " <h5 class='black'>".$dueDates["location"][$i]."</h5>";
echo " <h5 class='black'>".$dueDates["startTime"][$i]."</h5> <br>";
echo " </div>";
echo " </div>";
echo " </div>";
echo "<!-- WS-->";
echo " <div id='detail' class='subcolumns'>";
echo " <div class='c28l'>";
echo " <div class='subcl'>";
echo "<!-- <img src='citroen-ds-120-83.gif' alt='Citroen DS'> {art_pic}<br> -->";
echo " <p> </p>";
echo " <!-- vor Bild-2 Abstand -->";
echo "<!-- <img src='IMG_1180.gif' alt='Feuerwerk'> {pic} <br> -->";
echo " </div>";
echo " </div>";
echo " <div class='c72r'>";
echo " <div class='subcl'>";
echo " <h4 class='black' style='font-weight:normal'>".$dueDates["subTitle"][$i]."</h4> <br>";
echo " <p class='black'>".$dueDates["description_1"][$i]."</p>";
echo " <h4 class='blue' style='font-weight:normal'><a href=".$dueDates[$i]["Link"].">".mi18n('Details...')."</a> >></h4>";
echo " </div>";
echo " </div>";
echo " </div>";
echo " <div id='detail'>";
echo " <div>";
echo "<!-- <hr /> -->";
echo " </div>";
echo " </div>";
}
if($dueDates["idcat"][$i] == 212) {
echo " <div id='detail'>";
echo " </div>";
echo " <div id='detail'>";
echo " <div>";
echo " <p style='margin: 0 0 0 0'> </p>";
echo " </div>";
echo " </div>";
echo " <div id='detail'>";
echo "<!-- folgt Platzhalter fuer Hauptbild, Option RECHTS -->";
echo "<span class='text100'>".urldecode($dueDates["hauptbild"][$i])."</span>";
echo "<p class='absatz0'><br></p>";
echo "<p class='absatz0'>".$dueDates["vorsatz"][$i]."</p>";
echo "<p class='text116'>".$dueDates["haupttitel"][$i]."</p>";
echo "<p class='absatz0'><b>".$dueDates["untertitel"][$i]."</b></p>";
echo "<p class='absatz0'>".$dueDates["nachsatz"][$i]."</p>";
echo "<p>";
echo "<span class='text100'>".urldecode($dueDates["msgDescription_1"][$i])."</span>";
echo "</p>";
echo "<p>";
echo "<span class='text100 blue'><b>".$dueDates["terminzeile"][$i]."</b></span>";
echo "</p>";
echo "<p>";
echo "<span class='text100'>".urldecode($dueDates["msgDescription_2"][$i])."</span>";
echo "</p>";
echo "<hr class='trenner1'>";
echo " </div>";
echo " <div id='detail'>";
echo "<p>";
echo " ";
echo "</p>";
echo " </div>";
}
$tpl->next();
}
} else {
echo "Sorry, no due dates found !";
}
?>
[quote][/quote]