Snippet collection/clone theme with config 4-5

&lt;?php /** * $Id$ * * Bemerkenswert ist, dass die oxid in oxconfig und oxconfigdisplay nicht * korresponieren. * Wenn ein configWert gepeichert wird, bekommt der eine neue ID * siehe: core/oxconfig ~ 1680 * * # im Frontend muß man als Admin angemeldet sein, oder in Zeile exit(Anmeldung erforderlich) auskommentieren * # Vor dem ersten Lauf die beiden Werte für Quelle und Ziel anpassen * # Datei ins root-Verzeichnis * # Vorher den Theme-Ordner kopieren und umbenennen */

// Hier anpassen. $scriptConfig = (object) array(   'from' =&gt; 'azure',           // Quelle    'to'   =&gt; 'mytheme'          // Ziel );

exit('angepasst? kommentier mich aus in Zeile:' . __LINE__);

function getShopBasePath { return realpath( dirname(__FILE__) ). DIRECTORY_SEPARATOR; }

require_once getShopBasePath. 'core/oxfunctions.php'; $shopConfig = oxConfig::getInstance;

if( oxSession::getVar('usr') === null || oxSession::getVar('usr') !== 'oxdefaultadmin' ) { exit( 'Anmeldung erforderlich.' ); }

$oDb     = oxDb::getDb(true); $sShopId = $shopConfig-&gt;getBaseShopId;

$sSql = "   SELECT        `cfg`.`oxid`                                                   AS `id`,        `cfg`.`oxmodule`                                               AS `theme`,        `cfg`.`oxvarname`                                              AS `name`,        `cfg`.`oxvartype`                                              AS `type`,        DECODE( `cfg`.`oxvarvalue`, '" . $shopConfig-&gt;sConfigKey . "') AS `value`,        `cfgd`.`oxgrouping`                                            AS `group`,        `cfgd`.`oxvarconstraint`                                       AS `constraint`,        `cfgd`.`oxpos`                                                 AS `pos`    FROM        `oxconfig`        AS `cfg`,        `oxconfigdisplay` AS `cfgd`    WHERE        `cfg`.`oxshopid` = '". $sShopId. "'   AND        `cfg`.`oxmodule` = 'theme:". $scriptConfig-&gt;from ."'   AND(        `cfgd`.`oxcfgmodule` = `cfg`.`oxmodule`        AND        `cfgd`.`oxcfgvarname` = `cfg`.`oxvarname`    ) ";

$aThemeValues = $oDb-&gt;getAll( $sSql );

if( is_array( $aThemeValues )   &amp;&amp; !empty( $aThemeValues ) ) {   // lösche vorhande Einträge für das theme $oDb-&gt;Execute("       DELETE FROM            `oxconfig`        WHERE            `oxshopid`  = '" . $sShopId . "'        AND            `oxmodule` = 'theme:" . $scriptConfig-&gt;to . "'    ");

// lösche vorhande Einträge für das theme $oDb-&gt;Execute("       DELETE FROM            `oxconfigdisplay`        WHERE            `oxcfgmodule` = 'theme:" . $scriptConfig-&gt;to . "'    ");

foreach( $aThemeValues as $aConfig ) {       $cfg = (object) $aConfig; $sSql = "           REPLACE INTO                `oxconfig`            SET                `OXID`       = '". $scriptConfig-&gt;to. "." . $cfg-&gt;name. "',               `OXSHOPID`   = '". $sShopId. "',               `OXMODULE`   = 'theme:". $scriptConfig-&gt;to. "',               `OXVARNAME`  = '". $cfg-&gt;name. "',               `OXVARTYPE`  = '". $cfg-&gt;type. "',               `OXVARVALUE` = ENCODE( " . $oDb-&gt;quote( $cfg-&gt;value ) . ", " . $oDb-&gt;quote( $shopConfig-&gt;sConfigKey ) . " )        "; $oDb-&gt;Execute($sSql);

// display $sSql = "           REPLACE INTO                `oxconfigdisplay`            SET                `oxid`            = '". $scriptConfig-&gt;to. "." . $cfg-&gt;name. "',               `oxcfgmodule`     = 'theme:". $scriptConfig-&gt;to. "',               `oxcfgvarname`    = '". $cfg-&gt;name. "',               `oxgrouping`      = '". $cfg-&gt;group. "',               `oxvarconstraint` = '". $cfg-&gt;constraint. "',               `oxpos`           = '". $cfg-&gt;pos. "'     ";      $oDb-&gt;Execute($sSql); } } else { exit('Fehler. Keine Einträge für "'. $scriptConfig-&gt;from . '" gefunden' ); } Danke an stefan2 für die Bereitstellung des Scripts; Forenthread: http://www.oxid-esales.com/forum/showthread.php?t=9393&amp;page=2#post55919