Компонент "Языки" для ICMS 2 - Обновление 1.1.2

+18
2.98K
Иллюстрация
Адаптация компонента под instantCMS 2.7.2 — обновлены файлы дефолтного шаблона и исправлены мелкие проблемы, появившиеся в 2.7.2. Механизм работы компонента и перечень его возможностей остались прежними. Ничего не исчезло, ничего не добавилось.

Информацию по установке и обновлению смотрите на странице компонента в каталоге дополнений InstantCMS.

+1
Jestik Jestik 5 лет назад #
Спасибо!
+1
Олег Васильевич я Олег Васильевич я 5 лет назад #
Присоединяюсь к Jestik.
Спасибо!
+1
Нифигаccе о-го-гошеньки Нифигаccе о-го-гошеньки 5 лет назад #
Присоединяюсь к Jestik и Олегу Васильевичу я.
Спасибо!
+1
Loadырь Loadырь 5 лет назад #
Присоединяюсь к Jestik, Олегу Васильевичу я и DK.
Спасибо!

З.Ы. Если функционал не изменился, то попробуйте реализовать такое явление, когда пользователь заходит с родным языком сайта, то делать запросы и проверять наличие переводов для него не надо, так как они уже есть в системе в виде оригинала.
0
dwd dwd 5 лет назад #
Если честно я не понял о чем вы. Компонент не делает запросов если язык соответствует дефолтному. Посмотрите лог запросов.
Код PHP:
  1. if(cmsCore::isControllerExists('languages') && $system_lang !== $config->language) {
Этой проверкой снабжены все блоки кода.
0
Loadырь Loadырь 5 лет назад #
Видать не везде работает должным образом. Установил только, что ваш компонент ("голая" cms, "голый" компонент), из изменений только две галочки в настройках сайта - включил отладку и разрешил смену языка. Захожу в запись типа контента ("Общественный анализ зарубежного опыта") с дефолтным языком, смотрю в отладку SQL: 55 Mem: 4.96 Mb Time: 0.4297 s.
Спойлер
Захожу туда же с en языком: SQL: 62 Mem: 4.92 Mb Time: 0.4316 s
Выключаю компонент в админке сайта: на родном языке - SQL: 28 Mem: 4.63 Mb Time: 0.5176 s на en - SQL: 28 Mem: 4.59 Mb Time: 0.3828 s
0
dwd dwd 5 лет назад #
Дефолтная 2.7.2, свежеустановленная, 32 запроса на главной что с включенным компонентом "Языки", что с выключенным. в логе запросов ни одного обращения к таблицам компонента - http://img-fotki.yandex.ru/get/236239/109657871.20/0_5730ec_ffd4bf4d_orig.png
На остальных страницах тоже лишних запросов нет.
0
Loadырь Loadырь 5 лет назад #
На главной у меня тоже всё нормально, кроме варнингов на неродном языке при пустом переводе
Warning: Invalid argument supplied for foreach() in T:\OpenServer\domains\langs\system\controllers\languages\hooks\content_before_list.php on line 18
Но я же из того типа людей, что могут пройти дальше главной страницы на сайте.
0
dwd dwd 5 лет назад #
Как появится минутка посмотрю что к чему. но судя по вашему логу запросы из файла T:\OpenServer\domains\langs\system\controllers\languages\hooks\content_before_item.php, а в данном файле проверка присутствует - http://img-fotki.yandex.ru/get/198786/109657871.20/0_5730ed_2745d4ec_orig.png
0
Loadырь Loadырь 5 лет назад #
Тут как раз тот классический случай, когда для красоты и лучшей читабельности кода, лучше написать обратное условие
Код PHP:
  1. if ($user_lang !== $this->cms_config->language) { return $data; }
Так как у вас закрывающая скобка по какой-то причине не захватывает переводы полей в цикле https://yadi.sk/d/oyTCOFGe3Hjohi
0
Loadырь Loadырь 5 лет назад #
Код PHP:
  1. if ($user_lang === $this->cms_config->language) { return $data; }
Поправил.
0
Евгений Евгений 5 лет назад #
Спасибо, но заметил ошибку в файлах. При заливке файлов из папки res/templates по непонятной причине перестает открываться страница http://site.ru/board/avtomobili при этом остальная доска объявлений работает, может эта ошибка еще на что-нибудь повлияет. Проверьте пожалуйста. Спасибо за Ваши труды.
0
dwd dwd 5 лет назад #
Исправлено, архив перезалит. Замените файл templates/default/assets/ui/filter-panel.tpl.php для исправления ошибки.
0
AVPRT AVPRT 5 лет назад #
Обнаружена ошибка в коде:

ссылка

http://prntscr.com/fo1q11

После того, как сохранил перевод на нескольких языках и открываешь снова для редактирования, в редактор не подтягивается переведенный текст, тоесть отображается только русский во всех языковых режимах, хотя при просмотре на сайте при переключении языка видится и переведенный текст.

Это когда в админке включено сжатие html, глючит таким образом перевод текста
0
akhasanov akhasanov 5 лет назад #
А в чем отличие от компонента "Мультиязычность"? В том плане он решает какие-то существующие там проблемы?
0
dwd dwd 5 лет назад #
Если компонент "Мультиязычность" вас устраивает можете использовать его. Именно он и является родителем - лично мне его возможностей оказалось мало, поэтому и появился компонент "Языки".
0
Олег Васильевич я Олег Васильевич я 5 лет назад #
dwd , еще раз благодарю за прекрасный компонент!
Вынужден спросить, планируется ли поддержка в будущем (хотя б работоспособность на грядущей 2.8.1)?
0
Dorimen Dorimen 5 лет назад #
Так вроде бы и под 2.8.0 еще нет? )
0
Олег Васильевич я Олег Васильевич я 5 лет назад #
Dorimen, вы тестировали и не работает на 2.8.0? Я правильно вас понимаю?
0
dwd dwd 5 лет назад #
Большинство функций компонента работают, не далее как вчера ставил на 2.8.0 Отпал только перевод групп, поскольку в последнем релизе они претерпели значительное изменение. В остальном проблем я не нашел. Про поддержку - с момента написания компонента прошло много времени, вышло много релизов системы, появились новые хуки, некоторые механизмы изменились. Уже много можно реализовать проще и без правок. В планах на будущее - полностью переписать компонент с учетом всех этих изменений. Но когда конкретно это случится к сожалению сказать не могу - уж слишком мало времени у меня сейчас.
0
Олег Васильевич я Олег Васильевич я 5 лет назад #
Спасибо!
0
Евгений Евгений 5 лет назад #
На 2.8.1 если файлы движка править по инструкции, а не заменять с папки res предыдущими версиями, то пропадает редактор
Спойлер
На 2.7.2 при установке на чистую cms как на сервере так и локалхосте при включении в настройках любой из функций "Разрешить перевод полей форм" вылазиют ошибки при попытке добавить или редактировать статью
Спойлер
,
перевод же из админки компонента работает как на 2.7.2 так и на 2.8.2
0
dwd dwd 5 лет назад #
Добавление записи в 2.7.2 - https://youtu.be/_e2XqYt228k
Как видите никаких ошибок нет.
0
Евгений Евгений 5 лет назад #
Я понял ошибки начинают вылазить после создания новых типов контента, оказывается поля для локализаций контента настраиваются один раз при установке компонента и включении в настройках cms разрешения на смену языка пользователями, если добавляются новые типы контента после установки компонента Языки, то вываливаются эти ошибки при редактировании или добавлении записи
0
dwd dwd 5 лет назад #
На том же сайте что и в видео с прошлого поста проверил вашу идею. Нет такой ошибки. Создал новый тип контента, добавил к него полей - все работает. В настройках вы указываете типы полей и все поля соответствующих типов будут обработаны в любом типе контента. А при создании нового типа контента вам достаточно перейти на главную страницу компонента в админке и таблицы в БД для него будут созданы автоматически.
0
Евгений Евгений 5 лет назад #
Да, все работает на 2.7.2, это оказывается у меня обновление до 2.8.0 стояло, там эти ошибки вылазили
0
dwd dwd 5 лет назад #
В 2.8 + тоже никаких ошибок нет
0
dwd dwd 5 лет назад #
По поводу редактора в 2.8 - у меня не было времени разбираться что к чему, но причина явно в редакторе а не в компоненте Языки. Просто закомментируйте в файле wysiwyg/redactor/wysiwyg.class.php строку
Код PHP:
  1. if(self::$redactor_loaded){ return false; }
и проблема исчезнет. Данная строка не позволяет получать более 1 экземпляра редактора для каждого конкретного поля.

Еще от автора

Компонент «Продажа полей» для ICMS 2
Компонент для тотального управления продажей полей. Возможна оплата показа пользователями и самим автором. Масса типов продажи полей.
Компонент «Мотивация пользователей» для ICMS 2
Компонент предназначен для поощрения пользователей за систематическое посещение сайта.
Поле «Поддерживаю!» для ICMS 2
Поле «Поддерживаю!» предназначено для сбора голосов в решении какой-то задачи.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.