hab leider immer zu wenig zeit...
ich hab mir jetzt mal ein paar sachen aus dem script wieder angesehen...
und die funktion etwas nachmodifiziert die den abbruch verursacht
-> $db->Record[3] is not set
tried to change table :con_template
diesen abbruch kann man unterbinden, in dem man die function changeDbRecord
durch diese version ersetzt
Code: Alles auswählen
// change $db Record by name
//
// modify values of $db record by name
// $table specifies the table name
// $valueArray must be an Array with
// syntax $valueArray["fieldname"] = "new value";
//
// @author horwath@dayside.net
function changeDbRecord($table, $valueArray) {
global $db, $db2;
// $db2 muss hier verwendet werden !!
$values = $db2->metadata($table);
// get field names and position
$pos = 0;
foreach ($values as $key) {
$thisPosition[$key["name"]] = $pos;
$pos++;
}
if ($pos==0) {
echo "no field names found in table";
die();
}
// modify $db->Record[]
foreach ($valueArray as $name => $value) {
if (!isset($thisPosition[$name])) {
echo "sorry this $name does not exist in definied table<br>\n";
echo "available fields in table: <b>".$table."</b><br>\n";
echo "<pre>";
print_r($thisPosition);
echo "</pre>";
die();
} else {
if (!isset($db->Record[$thisPosition[$name]])) {
echo "no value stored in \$db->Record[".$thisPosition[$name]."]<br>";
echo "you should check table: '".$table."' ,field:'".$name."'<br>";
echo "skipping setting value to: '".$value."'<br>";
echo "DB Record:";
echo "<pre>";
print_r($db->Record);
echo "</pre>";
} else {
// change field value
$db->Record[$thisPosition[$name]] = $value;
}
}
}
}
ein abbruch erfolgt nur mehr falls die tabelle nicht exisitiert bzw das feld das geändert werden soll in dieser tabelle nicht vorhanden ist...
wenn kein wert gesetzt ist erfolgt nur ein hinweis das der wert unverändert bleibt...
ich hab mir das mit den artikel kopieren und kategorie kopieren noch etwas angesehen...
kategorie kopieren sollte noch fehlerfrei funktionieren,
die vorgangsweise artikel zu kopieren stimmt leider nur teilweise, da müsste die logik beim template configuration kopieren nachmodifiziert werden...
das mit dem content kopieren funktioniert theoretisch fehlerfrei... (sprich es ließe sich implementieren)
was nicht möglich ist
die korrekte anpassung der artikel, kategorie, template konfigurationen...
das ist leider ein ding der unmöglichkeit... (sprich die einstellungen die man vorgenommen hat)
auf gut deutsch
wenn man diese optionen korrekt einbaut, müsste nach dem mandanten kopieren jede konfigurationseinstellung überprüft und händisch nachgebessert werden... (siehe anmerkung am ende)
was es nicht bringt ins script zu implementieren:
nur die möglichkeit module zum neuen mandanten zu kopieren...
ich persönlich hatte bis jetzt noch nie, den fall das ich ein modul unverändert bei einem anderen mandanten einsetzen konnte...
ein server übergreifendes kopieren auf basis dieses scripts
da würd ich einfach nur empfehlen einen dump(test server) ohne die tabellen con_code und con_client zu erzeugen und beim server(live server) einzuspielen...
anmerkung:
der grund dafür ist ein design technisches problem seitens contenido
die parameter der konfigurations einstellungen beinhalten keinen hinweis darauf welcher wert typ die ziffer dort hat...
eine ziffer könnte somit idcat, idart oder irgend einen anderen wert gespeichert haben... ein rausfiltern aus dem modulcode ist somit nicht möglich...
zusätzlich gibt es auch das problem das bei einem CMS_VALUE nicht definiert werden kann welcher wert dort gespeichert wird...
simples beispiel -> modul hauptnavigation -> die idcat des hauptbaumes...
vielleicht ließe sich in contenido etwas wie CMS_VALUE[type:idtype] implementieren...
erst dann wäre eine automatische 100% kopiermöglichkeit mit korrekten anpassungen möglich...