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

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

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

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

"Вкладки + Автосвязи + Фильтры" для InstantCMS 2
Комментарии (28)
Jestik 5 мая 2017 в 21:54 +1
small user social cms
Спасибо!
Олег Васильевич я 5 мая 2017 в 22:39 +1
small user social cms
Присоединяюсь к Jestik.
Спасибо!
DK 5 мая 2017 в 22:42 +1
small user social cms
Присоединяюсь к Jestik и Олегу Васильевичу я.
Спасибо!
Loadырь 6 мая 2017 в 07:22 +1
small user social cms
Присоединяюсь к Jestik, Олегу Васильевичу я и DK.
Спасибо!

З.Ы. Если функционал не изменился, то попробуйте реализовать такое явление, когда пользователь заходит с родным языком сайта, то делать запросы и проверять наличие переводов для него не надо, так как они уже есть в системе в виде оригинала.
dwd 6 мая 2017 в 07:32 0
small user social cms
Если честно я не понял о чем вы. Компонент не делает запросов если язык соответствует дефолтному. Посмотрите лог запросов.
Код PHP:
  1. if(cmsCore::isControllerExists('languages') && $system_lang !== $config->language) {
Этой проверкой снабжены все блоки кода.
Loadырь 6 мая 2017 в 07:55 0
small user social cms
Видать не везде работает должным образом. Установил только, что ваш компонент ("голая" 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
dwd 6 мая 2017 в 08:01 0
small user social cms
Дефолтная 2.7.2, свежеустановленная, 32 запроса на главной что с включенным компонентом "Языки", что с выключенным. в логе запросов ни одного обращения к таблицам компонента - http://img-fotki.yandex.ru/get/236239/109657871.20/0_5730ec_ffd4bf4d_orig.png
На остальных страницах тоже лишних запросов нет.
Loadырь 6 мая 2017 в 08:05 0
small user social cms
На главной у меня тоже всё нормально, кроме варнингов на неродном языке при пустом переводе
Warning: Invalid argument supplied for foreach() in T:\OpenServer\domains\langs\system\controllers\languages\hooks\content_before_list.php on line 18
Но я же из того типа людей, что могут пройти дальше главной страницы на сайте.
dwd 6 мая 2017 в 08:10 0
small user social cms
Как появится минутка посмотрю что к чему. но судя по вашему логу запросы из файла 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
Loadырь 6 мая 2017 в 08:24 0
small user social cms
Тут как раз тот классический случай, когда для красоты и лучшей читабельности кода, лучше написать обратное условие
Код PHP:
  1. if ($user_lang !== $this->cms_config->language) { return $data; }
Так как у вас закрывающая скобка по какой-то причине не захватывает переводы полей в цикле https://yadi.sk/d/oyTCOFGe3Hjohi
Loadырь 6 мая 2017 в 08:25 0
small user social cms
Код PHP:
  1. if ($user_lang === $this->cms_config->language) { return $data; }
Поправил.
Евгений 7 мая 2017 в 04:31 0
small user social cms
Спасибо, но заметил ошибку в файлах. При заливке файлов из папки res/templates по непонятной причине перестает открываться страница http://site.ru/board/avtomobili при этом остальная доска объявлений работает, может эта ошибка еще на что-нибудь повлияет. Проверьте пожалуйста. Спасибо за Ваши труды.
dwd 7 мая 2017 в 16:49 0
small user social cms
Исправлено, архив перезалит. Замените файл templates/default/assets/ui/filter-panel.tpl.php для исправления ошибки.
AVPRT 27 июня 2017 в 07:40 0
no avatar
Обнаружена ошибка в коде:

ссылка

http://prntscr.com/fo1q11

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

Это когда в админке включено сжатие html, глючит таким образом перевод текста
akhasanov 24 июля 2017 в 12:59 0
small user social cms
А в чем отличие от компонента "Мультиязычность"? В том плане он решает какие-то существующие там проблемы?
dwd 29 июля 2017 в 00:40 0
small user social cms
Если компонент "Мультиязычность" вас устраивает можете использовать его. Именно он и является родителем - лично мне его возможностей оказалось мало, поэтому и появился компонент "Языки".
Олег Васильевич я 7 сентября 2017 в 10:36 0
small user social cms
dwd , еще раз благодарю за прекрасный компонент!
Вынужден спросить, планируется ли поддержка в будущем (хотя б работоспособность на грядущей 2.8.1)?
Dorimen 7 сентября 2017 в 10:42 0
no avatar
Так вроде бы и под 2.8.0 еще нет? )
Олег Васильевич я 7 сентября 2017 в 11:51 0
small user social cms
Dorimen, вы тестировали и не работает на 2.8.0? Я правильно вас понимаю?
dwd 7 сентября 2017 в 12:30 0
small user social cms
Большинство функций компонента работают, не далее как вчера ставил на 2.8.0 Отпал только перевод групп, поскольку в последнем релизе они претерпели значительное изменение. В остальном проблем я не нашел. Про поддержку - с момента написания компонента прошло много времени, вышло много релизов системы, появились новые хуки, некоторые механизмы изменились. Уже много можно реализовать проще и без правок. В планах на будущее - полностью переписать компонент с учетом всех этих изменений. Но когда конкретно это случится к сожалению сказать не могу - уж слишком мало времени у меня сейчас.
Олег Васильевич я 7 сентября 2017 в 12:37 0
small user social cms
Спасибо!
Евгений 12 сентября 2017 в 22:05 0
small user social cms
На 2.8.1 если файлы движка править по инструкции, а не заменять с папки res предыдущими версиями, то пропадает редактор
Спойлер
На 2.7.2 при установке на чистую cms как на сервере так и локалхосте при включении в настройках любой из функций "Разрешить перевод полей форм" вылазиют ошибки при попытке добавить или редактировать статью
Спойлер
,
перевод же из админки компонента работает как на 2.7.2 так и на 2.8.2
dwd 13 сентября 2017 в 02:56 0
small user social cms
Добавление записи в 2.7.2 - https://youtu.be/_e2XqYt228k
Как видите никаких ошибок нет.
Евгений 14 сентября 2017 в 11:02 0
small user social cms
Я понял ошибки начинают вылазить после создания новых типов контента, оказывается поля для локализаций контента настраиваются один раз при установке компонента и включении в настройках cms разрешения на смену языка пользователями, если добавляются новые типы контента после установки компонента Языки, то вываливаются эти ошибки при редактировании или добавлении записи
dwd 14 сентября 2017 в 20:47 0
small user social cms
На том же сайте что и в видео с прошлого поста проверил вашу идею. Нет такой ошибки. Создал новый тип контента, добавил к него полей - все работает. В настройках вы указываете типы полей и все поля соответствующих типов будут обработаны в любом типе контента. А при создании нового типа контента вам достаточно перейти на главную страницу компонента в админке и таблицы в БД для него будут созданы автоматически.
Евгений 15 сентября 2017 в 01:15 0
small user social cms
Да, все работает на 2.7.2, это оказывается у меня обновление до 2.8.0 стояло, там эти ошибки вылазили
dwd 21 сентября 2017 в 20:57 0
small user social cms
В 2.8 + тоже никаких ошибок нет
dwd 21 сентября 2017 в 20:48 0
small user social cms
По поводу редактора в 2.8 - у меня не было времени разбираться что к чему, но причина явно в редакторе а не в компоненте Языки. Просто закомментируйте в файле wysiwyg/redactor/wysiwyg.class.php строку
Код PHP:
  1. if(self::$redactor_loaded){ return false; }
и проблема исчезнет. Данная строка не позволяет получать более 1 экземпляра редактора для каждого конкретного поля.