— если критично уменьшить размер БД, то можно попробовать создавать для каждого тикета лишь по 1 записи, в которой будут перечислены id всех пользователей, которые просмотрели тикет. Но в таком случае отпадут гостевые просмотры.
— если нет возможности менять связанные дополнения, то остается или отключить просмотры для гостей, или повышать характеристики сервера
В данном случае «похожие товары», скорее всего, будут выводиться только на странице самого товара.
Плюс, с fenom-ом кол-во запросов к бд сокращается минимум на 1..)
К слову, по поводу разделения: логику разбивания и выборки случайного слова из заголовка можно вынести в модификатор.
Далее getObject по полученному id.
Ну или сделать отдельный запрос getObject с where по uri или любому другому уникальному идентификатору.
— если вам критично сохранить исходную логику подсчета просмотров (которая, как уже ответил выше Сергей, скорее визиты), то можно записывать результат в отдельное поле по крону и выводить его значение, или же кэшировать сниппет. Но это не спасет от разбухания базы
— если критично уменьшить размер БД, то можно попробовать создавать для каждого тикета лишь по 1 записи, в которой будут перечислены id всех пользователей, которые просмотрели тикет. Но в таком случае отпадут гостевые просмотры.
— если нет возможности менять связанные дополнения, то остается или отключить просмотры для гостей, или повышать характеристики сервера
Как вариант — по крону пробегаться по tickets_views, считая count на данный момент и, перенеся полученный результат в отдельное поле, очищать таблицу. При последующих срабатываниях — приплюсовывать результат.
— данный код необходимо вызывать после оригинанала.
Вариант 2: скопировать msearch2/js/web/default.js в произвольный файл, удалив в нем не желаемый элемент и в системных настройках указать путь до нового файла.
Минус второго решения в том, что при обновлении пакета, в котором изменился исходный файл default.js, изменения для вас не применятся.
Вариант 3: объявить !important для стилей. %)
Можете попробовать сделать сниппет-обертку для вызываемого в mFilter2 сниппета, который будет проверять наличие гет-параметров. В случае нахождения гет-параметра — передавать все scriptProperties в вызываемый сниппет, в противном случае возвращать пустоту.
Другой способ — расширить родной класс фильтрации, сформировав в нем нужные условия.
А в самом тв-поле указать нужный источник файлов.
— далее указываете нужный источник файлов для migx-тв-поля и тв-поля с изображением.