Илья Уткин

Илья Уткин

С нами с 15 декабря 2012; Место в рейтинге пользователей: #9
Илья Уткин
30 марта 2017, 18:28
1
+1
Возможно, CodeMirror не поддерживает перетаскивание. Поставьте вместо него Ace.
Илья Уткин
27 марта 2017, 15:38
+1
Удалять компонент я не буду. Вы можете создать свою сборку — вот инструкция: modx.pro/solutions/9491-how-to-create-a-build-for-modx/
Илья Уткин
27 марта 2017, 15:31
0
Закомментируйте строчки 552-555 в файле core/model/modx/sources/modfilemediasource.class.php. В чём дело я ещё не разбирался, но это должно помочь.
Илья Уткин
24 марта 2017, 08:14
0
На каждую пару параметр-ресурс одна запись в таблице? Или все параметры, относящиеся к одному ресурсу находятся в одной строке?
Илья Уткин
24 марта 2017, 08:05
0
А как эти данные хранятся? Прям в таблице modx_site_content создаются новые поля? Или в отдельной таблице? Или в поле properties в виде JSON?
Илья Уткин
23 марта 2017, 20:20
+6
Правда, Володя, ну сделай ты с ней что-нибудь, а?

Илья Уткин
21 марта 2017, 11:06
+1
Это не сарказм, у меня от твоих скринов глаза слезятся. У меня так: http://joxi.ru/V2Ve61pu7vkWmv
Илья Уткин
21 марта 2017, 08:43
+1
Боже… Какая боль =((

Илья Уткин
20 марта 2017, 14:45
0
Тут ещё и другие теги не обрабатываются… Пробуй отключить все плагины — вдруг, что-то вклинивается в парсер…

Илья Уткин
19 марта 2017, 08:46
0
Да, будет работать, никаких изменений вносить не нужно.
Илья Уткин
17 марта 2017, 22:03
0
Только галочку «Показывать ошибки» убрать надо — там какие-то ошибки лексиконов показываются, но на работоспособность они не влияют.
Илья Уткин
17 марта 2017, 21:46
3
+2
Если в браузере скрипт отрабатывает нормально, а проблема только в том, чтобы запустить скрипт из консоли, можно поставить дополнение Console и написать для него скрипт для пошагового импорта. Типа такого:

<?php
if (!isset($_SESSION['Console']['galgen'])) {
    $_SESSION['Console']['galgen'] = array(
        'resource' => 0,
        'gallery' => 0
    );
}
$offsets = $_SESSION['Console']['galgen'];
$q = $modx->newQuery('modResource', array('parent' => 0));
$total = $modx->getCount('modResource', $q);
if ($total <= $offsets['resource']) {
    print '<p>Completed</p>';
    $_SESSION['Console']['completed'] = true;
    unset($_SESSION['Console']['galgen']);
    return;
}
$q->limit(1, $offsets['resource']);
$resources = $modx->getCollection('modResource', $q);
foreach ($resources as $resource) {
    print "<p>Processing resource <b>".$resource->get('pagetitle')."</b></p>";
    $catalog = scandir($modx->getOption('base_path') . 'assets/images/resources/' .
                       $resource->get('id'));
    if (count($catalog) <= $offsets['gallery']) {
        $offsets['resource']++;
        $offsets['gallery'] = 0;
    }
    if ($catalog[$offsets['gallery']] != '.' && $catalog[$offsets['gallery']] != '..'
        && !is_dir($modx->getOption('base_path') . 'assets/images/resources/' .
        $resource->get('id') . '/' .  $catalog[$offsets['gallery']])) {
        $res = $modx->runProcessor('gallery/upload', array(
            'file' => $modx->getOption('base_path') . 'assets/images/resources/' .
                      $resource->get('id') . '/' . $catalog[$offsets['gallery']],
            'id' => $resource->get('id')
          ), array(
            'processors_path' => MODX_CORE_PATH . 'components/ms2gallery/processors/mgr/'
          )
        );
        if ($res->isError()) {
            $error = $res->getAllErrors();
            $error['file'] = 'assets/images/resources/' . $resource->get('id') .
                      '/' . $catalog[$offsets['gallery']];
            print_r($error);
        } else {
            print_r($res->getObject());
        }
    } else {
        print '<p>Skip folder <b>' . $catalog[$offsets['gallery']] . '</b></p>';
    }
    $offsets['gallery']++;
    $sucsess = round($offsets['gallery'] / count($catalog), 2) * 100;
    for ($i=0; $i<=100; $i++) {
        if ($i <= $sucsess) {
            print '=';
        } else {
            print '_';
        }
    }
    print '<p>' . $sucsess.'% (remains: '.(count($catalog) - $offsets['gallery']).')</p>';
}
$_SESSION['Console']['completed'] = false;
$_SESSION['Console']['galgen'] = $offsets;
return;
Илья Уткин
17 марта 2017, 10:51
0
Добавил вас в скайпе. ilyautkin
Илья Уткин
17 марта 2017, 09:45
1
0
[[#[[*parent]].location:notempty=`<p>Местоположение: [[#[[*parent]].location]]</p>`]]
Илья Уткин
15 марта 2017, 09:07
+3
Это не синтаксис — это обычный JSON. Он преобразуется в коде сниппета в массив и передаётся в xPDO. xPDO объединяет все элементы через AND. Вложенность преобразует в скобки. Если находит префикс OR, объединяет через OR вместо AND.
Илья Уткин
14 марта 2017, 14:30
1
+1
Ну раз компонент действительно куплен официально, попробую помочь.

Вот такой код правильно будет выводить картинки?

[[pdoResources?
  &loadModels=`ms2gallery`
  &class=`msResourceFile`
  &tpl=`tpl.tabs_photo`
  &sortby=`{ "msResourceFile.rank":"ASC" }`
  &limit=`0`
  &where=`[
      { "active":1, "parent":0, "resource_id":25 },
      [
          {"add:NOT LIKE":"%65%", "OR:add:IS":null },
          { "add:NOT LIKE":"", "OR:add:IS":null }
      ]
    ]`
  &showLog=`1`
]]

И по поводу ID-шников — я имел ввиду, что в ресурсе (65) НЕ будут выведены картинки, у которых в поле add будет указано, например: 165, 653, 1065
Илья Уткин
14 марта 2017, 13:06
1
+1
Вам надо использовать сниппет pdoResources. В нём возможно выбрать картинки с помощью параметров loadModels и class. И в нём уже параметр where будет работать так как надо (только не забудьте добавить в него поля active, parent, чтобы для каждой картинки выбирать только оригинал и не выбирать неактивные картинки).

Кроме того, заметьте, что условие `add` NOT LIKE '%65%' исключит и записи, у которых будут указаны, например, такие числа: 165, 653, 1065 и пр.

И вообще, так как компонент платный, можете написать в техподдержку на сайте modstore.pro. Думаю, вам помогут составить правильный запрос.
Илья Уткин
14 марта 2017, 07:15
2
+2
Очень часто фраза «предыдущий разработчик слился» характеризует отнюдь не разработчика… Не всегда, конечно, но к таким заказчикам надо относиться с осторожностью.