Par souci d'exhaustivité, vous pouvez ajouter manuellement des blocs et des variables aux listes blanches sous Système> Autorisations> Variables et Système> Autorisations> Blocs . Les codes que vous ajoutez sont sous la forme web/unsecure/base_url
(chemin de configuration) ou rss/order_new
(alias de classe de bloc).
Réponse originale
Mon script de mise à niveau ressemble à ceci:
/*
* 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();
}
}
Remplacez $blockNames
et $variableNames
par les vôtres. L'outil suivant aide à trouver les variables et les blocs utilisés: https://github.com/peterjaap/magerun-addons
Le chargement des variables / blocs en premier s'assure que vous n'essayez pas d'insérer des doublons (cela planterait le script). Cela m'est arrivé parce que le script m'a montré les variables "trans_email / ident_general / email" et "trans_email / ident_support / email" qui figurent déjà dans la liste blanche de la version finale du correctif.
Comment utiliser le script de mise à niveau
Placez-le dans un module personnalisé en tant que script de mise à niveau des données (les scripts de mise à niveau des données sont exécutés après un script de mise à niveau normal, ce qui garantit que les tables existent déjà). Si vous n'avez pas encore de module que vous utilisez pour les mises à jour de configuration, créez-le comme ceci:
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
(comme ci-dessus)
{{config}}
directives nécessitent une liste blanche. Le code est destiné aux projets, pas aux extensions, donc je suppose un shop corrigé, mais les extensions devraient vérifier la version de Magento (ou mieux, vérifiez si les tables existent)