Skip to content

Instantly share code, notes, and snippets.

@andronex
andronex / delete_old_sessions.php
Created October 2, 2017 20:33
Удаление старых сессий в таблице MODX посредством плагина, а не настройками PHP.
<?php
$rand = rand(1, 1000);
if ($rand === 1) {
$gcMaxlifetime = (integer) $modx->getOption('session_gc_maxlifetime', null, @ini_get('session.gc_maxlifetime'), true);
$access = time() - $gcMaxlifetime;
$modx->exec("
DELETE FROM {$modx->getTableName('modSession')} WHERE `access` < {$access};
OPTIMIZE TABLE {$modx->getTableName('modSession')};
");
$modx->log(modX::LOG_LEVEL_ERROR, 'clearOldSessions: old sessions have been removed.');
@pavel-one
pavel-one / plugin.php
Created April 30, 2018 16:01
MODX Extjs Интересные методы
<?php
$eventName = $modx->event->name;
switch($eventName) {
case 'OnDocFormPrerender':
// Для ресурсов с индетификатором шаблона 2
// а также для всех новых ресурсов ( $resource == null )
if( $resource && $resource->get('template') == 2 || !$resource){
$modx->regClientStartupHTMLBlock('<script>
Ext.onReady(function() {
//плагин на событие msOnBeforeAddToCart.
$cartArray = $cart->get(); // Массив корзины
$cartStatus = $cart->status(); // Состояние корзины
$totalCount = $cartStatus['total_count']; // Общее количество товаров в корзине
foreach ($cartArray as &$cartProduct) { // Обрабатываем все товары корзины
if ($product = $modx->getObject('msProduct', $cartProduct['id'])) { // Получаем объект товара по его ID в корзине
$quanity = $product->get('count_prod)';
$cartQuantity = $cartProduct["count"];
if($cartQuantity > $quanity){
$cartProduct['count'] = $quanity;
@crystaldaking
crystaldaking / gist:503adf2afdb264f4a966d44dce4f3d19
Created December 20, 2019 09:53
перегенировать uri modx
<?php
$q = $modx->newQuery('modResource', array(
'parent:IN' => array(0), // Перечисляем id разделов, если надо, но если документов не очень много, то можно с корня
));
// Это условие указывает поиск только документов без uri
$q->andCondition(array(
'uri' => null,
'OR:uri:=' => '',
));