0.00
Рейтинг
0.35
Сила
  • avatar axmxvx
  • 0
Проблема в самом минификаторе JS. Он не может правильно обработать файл jquery.js Минифицировал этот файл внешним ресурством, подсунул его в компонент ls-vendor вместо штатного, все заработало.
  • avatar axmxvx
  • 0
Воспроизвести так:
$config['module']['asset']['js']['compress'] = true;

В консоли ошибка JS
Uncaught SyntaxError: Unexpected token ;
Uncaught ReferenceError: ls is not defined
  • avatar axmxvx
  • 2
Баг. Пишем новый коммент к топику, затем жмем полное удаление коммента. Смотрим топик, коммента нет, а счетчик комментов показывает 1.
  • avatar axmxvx
  • 0
Примеры штатного сохранения кеша.
$this->Cache_Set($oBlog, "blog_{$oBlog->getId()}", array(), 60 * 60 * 24 * 4);
$this->Cache_Set($aBlogs, "blog_id_{$s}", array("blog_update"), 60 * 60 * 24 * 1);

и т.д.

Вопрос к разработчикам. В функциях после действий с объектом, везде, где происходит изменений объекта, есть сброс кеша. Зачем заново кешировать объект по времени, если над ним не было операций и создавать дополнительную нагрузку с последующей необходимостью время от времени чистить устаревший кеш?
  • avatar axmxvx
  • 3
Разобрался. Проблема решается на уровне сервера (замена драйвера бд дает прирост скорости ~ в 100 раз).
  • avatar axmxvx
  • 0
На сайте 47тыс. топиков, профилирование запроса вывода топиков на главной prnt.sc/difpjb
Сортировка по дате медленно работает, если перевести ее в формат unixtime, ускоряется в 2 раза, но все равно медленно. Есть у кого-нибудь мысли как ускорить этот процесс?
  • avatar axmxvx
  • 1
В моем плагине кол-во блогов топика расширено до бесконечности. Заметил, что при 100+ блогах у топика сохранение после редактирования начинает подтормаживать. Разобрался — не оптимально сделан пересчет топиков в блогах. Предлагаю оптимизировать штатную функцию ЛС-а т.к. сам ЛС станет в этом моменте чуточку быстрее (на малом кол-ве блогов не видно, но все же):
if ($aBlogsIdOld != $oTopic->getBlogsId()) {
    $this->Blog_RecalculateCountTopicByBlogId($aBlogsIdOld);
}
$this->Blog_RecalculateCountTopicByBlogId($oTopic->getBlogsId());

Если пользователь из 5 блогов меняет 1, то пересчитываются 10 (5+5).
Если сделать так, то пересчитывать будет только уникальные т.е. 6 (5+1):
$aBlogsForRecalculate = $oTopic->getBlogsId();
if ($aBlogsIdOld != $oTopic->getBlogsId()) {
    $aBlogsForRecalculate = array_merge($aBlogsForRecalculate,$aBlogsIdOld);
    $aBlogsForRecalculate = array_unique($aBlogsForRecalculate);
}
$this->Blog_RecalculateCountTopicByBlogId($aBlogsForRecalculate);
  • avatar axmxvx
  • 2
Отделить Севастополь так
DELETE FROM `prefix_geo_city` WHERE `id` = 15337;
INSERT INTO  `prefix_geo_region` (`id`,`country_id`,`name_ru`,`name_en` ,`sort`) VALUES (NULL ,  '149',  'Севастополь',  'Sevastopol',  '30');


Или сделать его по аналогии с Москвой и Питером
UPDATE  `prefix_geo_region` SET  `name_ru` =  'Автономная Республика Крым и Севастополь' WHERE  `prefix_geo_region`.`id` =1314;
  • avatar axmxvx
  • 2
Сортировка так:
UPDATE  `prefix_geo_region` SET  `sort` =  '50' WHERE  `prefix_geo_region`.`id` =1314;

Вместо 50 ставьте другое значение, сортируется по приоритетам. К примеру 150 изменит позицию Крыма. Методом тыка можете нужную позицию найти или посмотреть в БД приоритеты у записей и выставить нужный.
  • avatar axmxvx
  • 2
Можно запросом:
UPDATE  `prefix_geo_city` SET  `country_id` =  '149' WHERE `region_id` = '1314';
UPDATE  `prefix_geo_region` SET  `country_id` =  '149' WHERE `id` = '1314';
UPDATE  `prefix_geo_region` SET  `name_ru` =  'Автономная Республика Крым' WHERE  `prefix_geo_region`.`id` =1314;
UPDATE  `prefix_geo_region` SET  `name_en` =  'Krym' WHERE  `prefix_geo_region`.`id` =1314;
UPDATE  `prefix_geo_region` SET  `sort` =  '50' WHERE  `prefix_geo_region`.`id` =1314;
  • avatar axmxvx
  • 0
Спасибо, все получилось.
  • avatar axmxvx
  • 1
Прошу подсказать способ инжекта кода плагина в нужное место, в документации не нашел ответа на вопрос.

Файл: \application\frontend\components\topic\topic-add.tpl
Инжект хуком (работает):
    public function RegisterHook() {
        $this->AddHook('template_form_add_topic_begin', 'TemplateFormAddTopicBegin');
    }
    public function TemplateFormAddTopicBegin() {
        return $this->Viewer_Fetch(Plugin::GetTemplatePath('travel') . 'actions/ActionTopic/selector_geo.tpl');
    }


Далее пытаюсь переместить код ниже в этом же файле в блок: {block 'add_topic_form_text_before'}{/block}
Не получается, не рабочие варианты кода постить не буду, чтобы не путать.

Вопрос:
Каким способом инжектить код плагина в нужную конструкцию типа {block '***'}{/block}

Просьба пояснить на примере файла \application\frontend\components\topic\topic-add.tpl и кода (Plugin::GetTemplatePath('travel'). 'actions/ActionTopic/selector_geo.tpl') для {block 'add_topic_form_text_before'}{/block}