Der Vollständigkeit halber können Sie Blöcke und Variablen manuell zu den Positivlisten unter System> Berechtigungen> Variablen und System> Berechtigungen> Blöcke hinzufügen . Die Codes, die Sie dort hinzufügen, befinden sich in der Form web/unsecure/base_url
(Konfigurationspfad) oder rss/order_new
(Blockklassenalias).
Ursprüngliche Antwort
Mein Upgrade-Skript sieht folgendermaßen aus:
/*
* Make sure the upgrade is not performed on installations without the tables
* (i.e. unpatched shops).
*/
$adminVersion = Mage::getConfig()->getModuleConfig('Mage_Admin')->version;
if (version_compare($adminVersion, '1.6.1.2', '>=')) {
$blockNames = array(
'cms/block',
'catalog/product_list',
'germany/impressum',
'page/html',
'magesetup/imprint_field',
'magesetup/imprint_content'
);
foreach ($blockNames as $blockName) {
$whitelistBlock = Mage::getModel('admin/block')->load($blockName, 'block_name');
$whitelistBlock->setData('block_name', $blockName);
$whitelistBlock->setData('is_allowed', 1);
$whitelistBlock->save();
}
$variableNames = array(
'design/email/logo_alt',
'design/email/logo_width',
'design/email/logo_height',
);
foreach ($variableNames as $variableName) {
$whitelistVar = Mage::getModel('admin/variable')->load($variableName, 'variable_name');
$whitelistVar->setData('variable_name', $variableName);
$whitelistVar->setData('is_allowed', 1);
$whitelistVar->save();
}
}
Ersetzen Sie $blockNames
und $variableNames
mit Ihren Selbst. Das folgende Tool hilft bei der Suche nach verwendeten Variablen und Blöcken: https://github.com/peterjaap/magerun-addons
Wenn Sie zuerst die Variablen / Blöcke laden, stellen Sie sicher, dass Sie nicht versuchen, Duplikate einzufügen (dies würde das Skript zum Absturz bringen). Dies geschah mir, weil das Skript mir die Variablen "trans_email / ident_general / email" und "trans_email / ident_support / email" zeigte, die bereits in der endgültigen Patch-Version auf der Whitelist stehen.
Verwendung des Upgrade-Skripts
Platzieren Sie es in einem benutzerdefinierten Modul als Datenaktualisierungsskript (Datenaktualisierungsskripte werden nach dem normalen Aktualisierungsskript ausgeführt, um sicherzustellen, dass die Tabellen bereits vorhanden sind). Wenn Sie noch kein Modul haben, das Sie für Konfigurationsaktualisierungen verwenden, erstellen Sie es folgendermaßen:
app / etc / modules / Project_Config.xml
<?xml version="1.0"?>
<config>
<modules>
<Project_Config>
<active>true</active>
<codePool>local</codePool>
</Project_Config>
</modules>
</config>
app / code / local / Project / Config / etc / config.xml
<?xml version="1.0"?>
<config>
<modules>
<Project_Config>
<version>0.1.0</version>
</Project_Config>
</modules>
<global>
<resources>
<project_config>
<setup>
<module>Project_Config</module>
<class>Mage_Core_Model_Resource_Setup</class>
</setup>
</project_config>
</resources>
</global>
</config>
app / code / local / Project / Config / data / project_config / data-install-0.1.0.php
(wie oben)
{{config}}
Direktiven benötigen eine Whitelist. Der Code ist für Projekte gedacht, nicht für Erweiterungen, daher gehe ich von einem gepatchten Shop aus, aber Erweiterungen sollten die Magento-Version überprüfen (oder besser, prüfen, ob die Tabellen vorhanden sind)