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

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

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
20 декабря 2019, 10:39
+3
Вроде как нет.
У меня есть сайт, где раздел «Доска объявлений» года с 2016 создан, периодически допиливаю. реализация на Tickets + сделан отдельный интерфейс, более удобный.
Но нюансов куча.
Во-первых, все эти тикеты дико мешаются на сайте. Объявления далеко не основная функция сайта. Я бы реально их лучше в отдельную таблицу вынес.
Во-вторых, сейчас пришли к вопросу платных объявлений, к поднятию и закреплению их, тоже не понятно, как все это реализовывать. И это при том, что уже огромное кол-во функционала было реализовано.
В-третьих, все чаще появляется проблема откровенного спама со стороны публикующих объявления. Они их создают сотни, с разных аккаунтов, немного меняя заголовки. Приходится много просматривать вручную, следить по IP и т.д. В общем автоматического контроля за этим никакого нет, все в ручную.

Как итог, сейчас я бы лучше выбрал готовый движок (думаю, такие есть) для создания простой доски и разместил бы ее поддоменом (или в отдельном каталоге, если получится) и подогнал дизайн.
Наумов Алексей
20 декабря 2019, 10:17
0
RewriteRule ^([0-9]+)_related_articles.json$ related_articles?article=$1
Сайт для проверки: htaccess.madewithlove.be/
Наумов Алексей
19 декабря 2019, 16:13
0
Тысяча причин:
1. Товары не опубликованы
2. Неверный шаблон у товаров
3. Не все поля заполнены так, как это подразумевал разработчик
4. Отображается ограниченное кол-во товаров, ваши выходят за это кол-во
Наумов Алексей
19 декабря 2019, 14:32
0
Ну через htaccess (или nginx) сделайте правило:
/1234_related_articles.json => /related_articles?artice=1234
А на этой странице работаем с get параметром
Наумов Алексей
17 декабря 2019, 16:57
0
Тогда почему бы и нет)
Наумов Алексей
17 декабря 2019, 16:42
0
На alpha версии? Я бы делал только если это «свой» сайт, не как продукт за деньги.
Наумов Алексей
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();
    }
}