Skip to content

Instantly share code, notes, and snippets.

@av-jok
Forked from ig0r74/del.php
Created February 10, 2018 19:16
Show Gist options
  • Save av-jok/42845d04f2b20123134b76d4f7463586 to your computer and use it in GitHub Desktop.
Save av-jok/42845d04f2b20123134b76d4f7463586 to your computer and use it in GitHub Desktop.
Удаление старых версий пакетов MODX (запускать из консоли "php del.php")
<?php
define('MODX_API_MODE', true);
require 'index.php';
$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget('ECHO');
if (!XPDO_CLI_MODE) {
echo '<pre>';
}
$c = $modx->newQuery('transport.modTransportPackage');
$c->select('package_name');
$c->groupby('package_name');
if ($c->prepare() && $c->stmt->execute()) {
while ($package = $c->stmt->fetchColumn()) {
$c2 = $modx->newQuery('transport.modTransportPackage', ['package_name' => $package]);
$c2->where(['installed:!=' => '0000-00-00 00:00:00']);
$c2->sortby('installed', 'desc');
$c2->limit(1000, 1);
$c2->select('signature');
if ($c2->prepare() && $c2->stmt->execute()) {
while ($signature = $c2->stmt->fetchColumn()) {
$res = $modx->runProcessor('workspace/packages/version/remove', ['signature' => $signature]);
if (!$res->isError()) {
echo $signature . " removed!\n";
ob_flush();
} else {
$modx->log(modX::LOG_LEVEL_ERROR, "Could not remove {$signature}:" . $res->getMessage());
}
}
}
}
}
if (!XPDO_CLI_MODE) {
echo '</pre>';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment