Igor Ivanov

Igor Ivanov

С нами с 19 марта 2013; Место в рейтинге пользователей: #344
Klike
14 сентября 2016, 08:32
2
0
Вот решение:
phpthumb.class.php, после 219 строчки добавить
function __construct() {
	$this->phpThumb();
}
https://github.com/JamesHeinrich/phpThumb/pull/46/commits/77ffc007933b67df1bc91cd04689ff9ed6682824

А вообще, в 2.5.1 уже исправили. Так что можно просто обновиться до свежей версии MODX
Василий Наумкин
23 августа 2016, 03:25
1
+4
minishop2.com/search/simple?query=товар

На главной странице данные для входа в админку.
Илья Уткин
03 июля 2016, 13:12
3
+2
Возможно, вот такой вариант сможет и из Console обработать любое количество ресурсов:
<?php
$field = $modx->getOption('videogallery_field_image');

// Сколько ресурсов обрабатывать за раз
$step = 1;
// Если процесс уже остановлен, сбрасываем OFFSET
if (!isset($_SESSION['Console']['completed'])) {
    $_SESSION['console_offset'] = 0;
}
$offset = isset($_SESSION['console_offset']) && $_SESSION['console_offset'] ? $_SESSION['console_offset'] : 0;

$q = $modx->newQuery('modResource');
$q->innerJoin('modTemplateVarResource', 'modTemplateVarResource', 'modTemplateVarResource.contentid = modResource.id');
$q->innerJoin('modTemplateVar', 'modTemplateVar', 'modTemplateVar.id = modTemplateVarResource.tmplvarid');
$q->select(array(
    'modResource.id as resource_id',
    'modTemplateVar.id as tv_id',
    'modTemplateVar.name as tv_name',
    'modTemplateVarResource.value as tv_value',
    'modTemplateVarResource.id as id',
));
$q->where(array(
    'modTemplateVar.type' => 'videoGallery',
));

// Подсчитываем общее количество
$total = $modx->getCount('modResource', $q);

// Пропускаем все уже обработанные объекты
$q->limit($step, $offset);

$q->prepare();
$q->stmt->execute();
$rows = $q->stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $row) {
    // print_r($row);
    $data = $modx->fromJSON($row['tv_value']);
    if (is_array($data) && isset($data['video'])) {
        $old['fileurl'] = $data['image'];
        $old['filepath'] = str_replace(MODX_ASSETS_URL, MODX_ASSETS_PATH, $old['fileurl']);
        
        $resp = $modx->runProcessor('gallery/handle', array(
            'resource' => $row['resource_id'],
            'tv' => $row['tv_id'],
            'video' => $data['video'],
        ), array('processors_path' => MODX_CORE_PATH . 'components/videogallery/processors/mgr/'));
        
        $resp = $resp->response;
        // print_r($resp['object']['image'].PHP_EOL);
        
        if ($resp['success']) {
            if ($resource = $modx->getObject('modResource', array('id' => $row['resource_id']))) {
                $resource->setTVValue($row['tv_name'], $resp['object']['json']);
                $resource->save();
                
                // Если в настройках указано поле для хранения изображений - сохраним в него новый путь до картинки
                if ($field) {
                    if (stristr($field, 'tv.')) {
                        $resource->setTVValue(str_replace('tv.', '', $field), $resp['object']['image']);
                    } else {
                        $resource->set($field, $resp['object']['image']);
                    }
                    $resource->save();
                }
                
                // Удалим старое изображение
                if (file_exists($old['filepath']) && $old['fileurl'] != $resp['object']['image']) {
                    @unlink($old['filepath']);
                }
            }
        }
    }
}

// Меняем offset
$_SESSION['console_offset'] = $offset + $step;
if ($_SESSION['console_offset'] >= $total) {
  $sucsess = 100;
  $_SESSION['Console']['completed'] = true;
  unset($_SESSION['console_offset']);
} else {
  $sucsess = round($_SESSION['console_offset'] / $total, 2) * 100;
  $_SESSION['Console']['completed'] = false;
}
for ($i=0; $i<=100; $i++) {
    if ($i <= $sucsess) {
        print '=';
    } else {
        print '_';
    }
}
print "\n";
print $sucsess.'% ('.$_SESSION['console_offset'].')'."\n\n";
Fi1osof
07 января 2016, 11:57
20
+12
Если ключ не хотите светить, то однозначно запрос надо слать с вашего сервера на донора. В MODX есть готовый CURL-клиент. Вот код для примера:
$client = $modx->getService('rest.modRestCurlClient');
$result = $client->request('https://ya.ru', '/', 'POST', $params = array('foo'  => 'foo'));
print $result;
Можете с этим кодом к консоли поиграться.
Григорий Коленько
20 октября 2015, 15:14
2
+1
К кнопке класс добавить .no-ajax
var getUrlGetString = function () {
        return decodeURIComponent(window.location.search.substring(1))

    }
    var getUrlParameter = function getUrlParameter(sParam) {
        var sPageURL = decodeURIComponent(window.location.search.substring(1)),
            sURLVariables = sPageURL.split('&'),
            sParameterName,
            i;

        for (i = 0; i < sURLVariables.length; i++) {
            sParameterName = sURLVariables[i].split('=');

            if (sParameterName[0] === sParam) {
                return sParameterName[1] === undefined ? true : sParameterName[1];
            }
        }
    };
    $(".no-ajax").on("click", function (e) {
        if ($.preventDefaultEvent(e)) return;
        var form = $(this).parents('form:first');
        var url = $(form).prop("action");
        window.location.replace(url + "?" + getUrlGetString());
    });

Василий Наумкин
18 февраля 2015, 21:43
3
+1
Перейти в директорию сайта в консоли сервера, затем набрать:
mkdir ./Extras
cd ./Extras
git clone https://github.com/bezumkin/mSearch2.git
php ./mSearch2/_build/build.transport.php
Готовый пакет лежит в ./core/packages/.
Теперь нужно зайти в управление пакетами админки, поискать его там локально и установить.

Куда проще — я не знаю.
Василий Наумкин
20 октября 2014, 12:08
4
0
С версии MODX 2.3 у ресурса есть свой метод clearCache.
if ($resource = $modx->getObject('modResource', 15)) {
	$resource->clearCache();
}