Skip to content

Instantly share code, notes, and snippets.

@Sioweb
Last active April 29, 2020 06:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Sioweb/8fe8e110bb588c8b4ff9b49abb10504d to your computer and use it in GitHub Desktop.
Save Sioweb/8fe8e110bb588c8b4ff9b49abb10504d to your computer and use it in GitHub Desktop.
Oxid remove config for specific Modules
<?php
// See comments below
namespace Sioweb\Oxid\CleanUp\Controller;
use OxidEsales\Eshop\Application\Controller\FrontendController;
class CleanUp extends FrontendController
{
public function removeConfigFrom()
{
// Hier alle Metadata-IDs eintragen die gelöscht werden sollen
$RemoveConfig = [
'dev-checkout'=>'',
'dev-console'=>'',
'dev-core'=>'',
'dev-editor'=>'',
'dev-logs'=>'',
'dev-mails'=>'',
'dev-metadata'=>''
];
$data = [
'aModuleExtensions',
'aModuleTemplates',
'aModuleEvents',
'aModulePaths',
'aModuleVersions',
'aDisabledModules',
'aModuleFiles',
'aModuleControllers',
];
foreach($data as $varName) {
// Erstmal ausgeben, was in der Datenbank steht
// echo "<pre>" . print_r($this->getConfig()->getShopConfVar($varName), true) . "</pre>\n";
// Save
$this->getConfig()->saveShopConfVar('arr', $varName, array_diff_key($this->getConfig()->getShopConfVar($varName), $RemoveConfig));
}
$Database = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC);
// Also remove blocks?
// $Database->execute("DELETE FROM `oxtplblocks` WHERE OXMODULE IN ('" . implode("', '", array_keys($RemoveConfig)) . "')");
die();
}
public function setDisable()
{
// Aus irgendwelchen Gründen aktivieren sich von Zeit
// zu Zeit Module bei automatischen Deployments.
// So können alle ungewollten wieder deaktiviert werden
$disableModules = [
'bestitamazonpay4oxid',
'fcpayone',
'ddoevisualcms',
'oetags',
'oxpspaymorrow',
'tcklarna'
];
echo "<pre>" . print_r($this->getConfig()->getShopConfVar('aModulePaths'), true) . "</pre>\n";
die("<pre>" . __METHOD__ .":\n" . print_r($this->getConfig()->getShopConfVar('aDisabledModules'), true));
// SET DISABLED
// $this->getConfig()->saveShopConfVar('arr', 'aDisabledModules', $disableModules);
die();
}
}
@Sioweb
Copy link
Author

Sioweb commented Aug 23, 2019

Der Body der Methoden removeConfigFrom und setDisable kann in jeden Controller eingefügt werden, der mit ?cl=... aufrufbar ist.

Damit lassen sich alte Configs sowie ungültige Configs entfernen.

Die Debug-Zeilen (echo | die) sollen helfen zu verstehen, was das Script macht und können einfach auskommentiert werden. Ich empfehle aber am Ende ein die(); auszuführen, damit nicht irgendwelche später ausgeführten Scripte getriggert werden.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment