Skip to content

Instantly share code, notes, and snippets.

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 ru2fac/2e1e23d71de55c099297ebcccdcb1e5c to your computer and use it in GitHub Desktop.
Save ru2fac/2e1e23d71de55c099297ebcccdcb1e5c to your computer and use it in GitHub Desktop.
Удаление старых версий пакетов MODx
<?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>';
}
@ru2fac
Copy link
Author

ru2fac commented Nov 10, 2018

Скрипт от Василия Наумкина.

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