Skip to content

Instantly share code, notes, and snippets.

@Sioweb

Sioweb/CleanUp.php

Last active Apr 29, 2020
Embed
What would you like to do?
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

This comment has been minimized.

Copy link
Owner Author

@Sioweb 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