Kategoriemenü

Zuordnung der Produkte zu Menüpunkten im CRON

Für die Zuordnung der Produkte zu Menüpunkten, wird für jede Domain eine Index-Tabelle (id, shop_id, menu_item_id) erstellt: PREFIX_TABLE_MENU + DomaindID + a/b-switch.

Diese Menü-Tabellen werden nach dem Einlesen der Produkte für alle geänderten Shops für jede aktive Domain erstellt.

Zuordnung der Produkte zu Menüpunkten im Backend

Die Menü-Tabelle muss bei Änderungen im Menüpunkt neu erstellt werden, damit die Änderung im Frontend wirksam wird.

Um hier bei einer ggf. bereits gut laufende Domain - die Seitenladezeiten nicht unnötig zu verzögern wäre für die Bearbeitung der Menüpunkte und Kontrolle, des Ergebnisses, die Neuerstellung der Tabelle - ohne diese aktiv zu schalten möglich. Dazu müssten dann innerhalb der Bearbeitung im Backend - eine Art Vorschau möglich sein. Aufruf der Domain mit einem Kontrollparameter, bei dem die Daten für die Anzeige des Menüs aus dem TMP-Tabellen und der inaktiven Index-Tabelle verwendet würden.

Mit Beendigung und Speichern des geänderten Menüs (Erstellung der Menü-XML) erfolgt in jedem Fall der Switch auf die geänderte Index-Tabelle.

Datei: module/mod_catmenu/catmenu_funktionen.php (Auszug)

/*------------------------------------------------------
//  Zuordnung der Produkte zu den Menüpunkten eines
//  catmenüs, Eintrag in Steuertabelle.
//  Das Update selbst erfolgt erst im Cron-Job, bzw.
//  beim manuellen Ausführen des Cron-Jobs
//------------------------------------------------------*/

  function tep_db_prepare_update_catmenu_catids($domid)
  {      
     tep_db_connect();
     $query = "INSERT INTO ".TABLE_TMP_UPDATE_CHECK." (domain_id, need_update) VALUES ('"
              .$domid."', '3')";
     $result = mysql_query($query) OR log_db($query.' '.mysql_error());
    
     if (!$result) {
              $error = array('code' => 2, 'text' => 'Es ist ein Fehler beim Löschen der Daten aufgetreten:', 'err' => mysql_error() );
              return $error;
     }

     return true;      
  }
^