Наумов Алексей

Наумов Алексей

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
16 декабря 2019, 10:02
0
{foreach $data as $row}
    {if $row.active}
        {$row.value}
    {/if}
{/foreach}
Наумов Алексей
13 декабря 2019, 15:25
+1
Ну целиком я бы переопределять не стал…
Вдруг кто-то еще переопределяет метод? Хотя по идее это довольно базовый метод, менять в нем нечего процессорам.

В том, чтобы сделать так:
public function run() {
    if (!$this->checkPermissions()) {
        $o = $this->failure($this->modx->lexicon('permission_denied'));
        return new modProcessorResponse($this->modx,$o);
     }
    return base::run():
}
я вижу один минус… это двойной вызов checkPermissions().
Но, честно говоря, идей лучше у меня нет.
Наумов Алексей
13 декабря 2019, 15:06
+1
Судя по всему или полностью переопределить метод run() или сделать свой run, где сначала сделать checkPermissions, если что вернуть свое сообщение, а затем вызвать base::run.
Наумов Алексей
12 декабря 2019, 13:28
0
В общем выяснили, что проблема была в настройках политик доступа, был закрыт доступ ко всей категории easyComm.
Наумов Алексей
12 декабря 2019, 11:27
0
В сниппете ecThreadRating нет ни одной проверки на права… нет вызова процессоров…
Все что там есть, так это получение объекта цепочки из базы:
$thread = $modx->getObject('ecThread', array('name' => $thread));
Наумов Алексей
12 декабря 2019, 11:11
+1
Потому как ошибки на сайте не связаны с привязкой дополнений.
Наумов Алексей
12 декабря 2019, 11:02
0
Проверка на домен у платных дополнений только в момент их установки на сайт.
Так что ошибки у вас не от того, что дополнения платные привязаны к другому адресу.
Без смены привязки вы их только обновить не сможете.
Думаю, стоит написать в магазин ModStore, вам должны помочь.
Наумов Алексей
12 декабря 2019, 10:39
0
Примеры вызова всех сниппетов покажите
Наумов Алексей
11 декабря 2019, 16:19
0
Не-не. $message это общий случай, у тебя конечно же $object. Именно $object доступен в плагине, $message там нет.
Наумов Алексей
11 декабря 2019, 15:01
0
Упс, ошибся. Там есть поле extended, оно не используется, добавлено «на всякий». Поле типа json, по идее работать с ним нужно как с массивом (хотя я ни разу его не использовал).
$v = $message->get('extended');
$v['some'] = 'test';
$message->set('extended', $v);
$message->save();
Наумов Алексей
11 декабря 2019, 11:27
0
[[+content:cdata:replace=`assets/==/assets/`:replace=`src="/==src="`]]
но эти дичь дикая, костыль жуткий и вообще, молюсь, чтобы мне такой сайт не пришел в работу)
Бороться нужно с причиной, а не ее последствиями.
Наумов Алексей
11 декабря 2019, 09:16
0
Да, зацепится особо не за что, верно.
Как Сергей подметил, можно properties использовать, это поле есть не только у ресурса, но и у комментария.
Оно в компоненте нигде не используется.
Делайте там пометку нужную вам.
Наумов Алексей
10 декабря 2019, 10:10
0
$thread = $object->getOne('Thread');
if($thread) {
    $resource = $thread->getOne('Resource');
    if($resource) {
        $resource->set('editedon', time());
        $resource->save();
        $resource->clearCache();
    }
}
Наумов Алексей
10 декабря 2019, 09:27
0
Я без проверки напишу, может где-то опечатаюсь)
Еще после методов getOne желательно проверять объекты на null.

if ($modx->event->name == 'OnEcMessageSave') {
    $thread = $object->getOne('Thread');
    $resource = $thread->getOne('Resource');
    $resource->set('editedon', time());
    $resource->save();
    $resource->clearCache();
}
по логике это все.
Если все равно осталось закешированным, то стоит посмотреть, как генерируется LastModified
Наумов Алексей
06 декабря 2019, 09:42
0
Реально, каков вопрос, таков и ответ.
Можно сделать и так и так.
У меня есть сайт, там типа товаров, но не совсем, подтягиваю их по апи (пл запросу), затем кеширую на сутки данные, работает все хорошо.
Из плюсов — нет кучи товаров, не надо следить за удалением товаров.
Наумов Алексей
04 декабря 2019, 11:27
+2
Не?
{set $result = $_modx->runSnippet('abc');}
Наумов Алексей
03 декабря 2019, 14:02
+1
Каким-либо образом переопределить селектор.
Html допускает только 1 уникальный id в документе. Вероятно нужно заменить id на class.
Наумов Алексей
02 декабря 2019, 10:33
0
Может правда хостинг? Оптимизируют что-нибудь для быстродействия, вот и результат непредсказуемый.