functions.con.php
Wenn start_compatible = true ist, räumt die Zeile
Code: Alles auswählen
$sql = "UPDATE ".$cfg["tab"]["cat_art"]." SET is_start = 0 WHERE idcat = $tmp_idcat";
Alt:
Code: Alles auswählen
function conMakeStart($idcatart, $is_start)
{
global $db, $cfg, $lang;
if ($cfg["is_start_compatible"] == true)
{
$sql = "SELECT idcat, is_start FROM ".$cfg["tab"]["cat_art"]." WHERE idcatart = '$idcatart'";
$db->query($sql);
$db->next_record();
$tmp_idcat = $db->f("idcat");
$set = $is_start;
$sql = "UPDATE ".$cfg["tab"]["cat_art"]." SET is_start = 0 WHERE idcat = $tmp_idcat";
$db->query($sql);
$sql = "UPDATE ".$cfg["tab"]["cat_art"]." SET is_start='$set' WHERE idcatart = '$idcatart'";
$db->query($sql);
if ( $set == 1 )
...
Code: Alles auswählen
function conMakeStart($idcatart, $is_start)
{
global $db, $cfg, $lang;
if ($cfg["is_start_compatible"] == true)
{
$sql = "SELECT idcat FROM ".$cfg["tab"]["cat_art"]." WHERE idcatart = '$idcatart'";
$db->query($sql);
$db->next_record();
$tmp_idcat = $db->f("idcat");
$sql = "SELECT tblCatArt.idcatart ".
"FROM ".$cfg["tab"]["cat_art"]." tblCatArt, ". $cfg["tab"]["art_lang"]." tblArtLang ".
"WHERE tblCatArt.idart = tblArtLang.idart AND tblCatArt.is_start = '1' AND ".
"tblArtLang.idlang = '$lang' AND tblCatArt.idcat = '$tmp_idcat'";
$db->query($sql);
$aIDs = array();
while ($db->next_record())
{
$aIDs[] = $db->f("idcatart");
}
if (count($aIDs) > 0)
{
$sql = "UPDATE ".$cfg["tab"]["cat_art"]." SET is_start = 0 WHERE idcatart IN ('" . implode("','", $aIDs) . "')";
$db->query($sql);
}
$set = $is_start;
$sql = "UPDATE ".$cfg["tab"]["cat_art"]." SET is_start='$set' WHERE idcatart = '$idcatart'";
$db->query($sql);
if ( $set == 1 )
...
Mit der Änderung werden ggf. nur Startartikel in der Kategorie in der aktuellen Sprache abgeräumt.
Über Feedback und Verbesserungsvorschläge würde ich mich freuen, da ich mit den Abfragen nicht so glücklich bin (erst wird die idcat ermittelt, dann alle idcatarts der Kategorie in der Sprache, die Startartikel sind [der Ausgangscode geht auch davon aus, dass es mehrere sein können...]), dann werden diese gelöscht und nur der eine Artikel als Startartikel gesetzt.
Gruß
HerrB