0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 345 Просмотров
*

Roinmana

  • Осваиваюсь на форуме
  • 87
  • 1
Обновил Joomla до версии 3.6, затем Jcomments с 3.0.0 до 3.0.5, после этого пропали все надписи. Вместо текста выводятся значения FORM_HEADER, FORM_CAPTCHA_REFRESH, FORM_CHARSLEFT_SUFFIX и т.д. Файлы локализации в норме, лежат на своем месте, значения все расписаны. Помогите разобраться в чем ошибка!
*

Roinmana

  • Осваиваюсь на форуме
  • 87
  • 1
Оказалось, что данная ошибка возникает после установки компонента lm_any Last-Modified. Я ставил версию 1.3.1, другие не проверял.
*

yunoshev

  • Разработчик расширений для Joomla 1.0
  • 1239
  • 175
@Roinmana
(Модераторы, простите за повтор ответа. Просто решил, что решение смогут увидеть и другие, кто пользуется комментариями).

Итак, рассказываю по порядку.

1). В плагине стоит проверка на подгрузку данных посредством AJAX и во время выдачи фида (параметры строки адреса format, tmpl). В такие моменты он не выполняется.
2). Напомню, что плагин выполняет лишь функцию так сказать "прослойки" между сайтом и браузером, выполняя техническую функцию формирования нужных заголовков страницы для ее кеширования и последующей индексации ботами.
3). При включенном любом варианте кеширования в настройках сайта плагин также работает прекрасно, если отключен режим SEF (ЧПУ). Если режим SEF включен, то только в этом случае с комментариями появляется такой глюк. А это значит, что не все параметры корректно передаются посредством AJAX в режиме кеширования + SEF (теряется параметр tmpl=component, можете проверить через FireBug). Это, мне кажется, глюк самого движка, а не в частности плагина.
4). Если я буду игнорировать работу плагина при включенном кешировании, то тогда нет смысла вообще его включать да и ставить на сайты с кешированием+комментарии, т.к. он никогда не будет выполняться.

Теперь вариант решения проблемы в сложившейся ситуации.
Не вижу смысла отдавать SEF-адреса при работе с AJAX, т.к. эти адреса все равно нигде в ссылках не участвуют, используются только в скриптах. А значит, можно изменить код в файле /components/com_jcomments/classes/factory.php (public static function getLink)
Код: php
			case 'ajax':
$config = JCommentsFactory::getConfig();

// support alternate language files
$lsfx = ($config->get('lsfx')!= '')? ('&lsfx=' . $config->get('lsfx')) : '';

// support additional param for multilingual sites
if (!empty($lang)) {
$lang = '&lang=' . $lang;
}

$link = JRoute::_('index.php?option=com_jcomments&tmpl=component' . $lang . $lsfx);

на следующий вариант:
Код: php
			case 'ajax':
$config = JCommentsFactory::getConfig();

// support alternate language files
$lsfx = ($config->get('lsfx')!= '')? ('&lsfx=' . $config->get('lsfx')) : '';

// support additional param for multilingual sites
if (!empty($lang)) {
$lang = '&lang=' . $lang;
}

$link = 'index.php?option=com_jcomments&tmpl=component' . $lang . $lsfx;

Обратите внимание, что изменилась только ссылка!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться