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

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

Компонент " Языки" теперь стал поистине тотальным. Данное обновление коснулось в основном двух немаловажных аспектов - переводу форм и географических объектов. Теперь ваши пользователи могут видеть на родном для себя языке не только контент, категории, теги, но и формы регистрации, редактирования профиля, загрузки фото, создания категорий и добавления записей. Переведено практически все, до чего можно было дотянуться - заголовки fieldset-ов, заголовки полей, подсказки к полям, содержимое списков полей, списков категорий, списков групп и т.д.

Помимо перевода добавлена возможность управлять добавлением контента - доступно 3 варианта добавления контента на сайт:

- Стандартный(весь контент добавляется на сайт в том виде, в котором его ввел пользователь)
- Автоперевод(контент, добавленный пользователем будет автоматически переведен на все языки)
- Полный контроль(пользователь может полностью контролировать процесс добавления контента и его перевода)

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

По просьбам трудящихся реализован перевод названий стран, регионов, городов. Теперь везде, где требуется выбор/отображение города будет использоваться язык страницы. Перевод базы названий за вами, на это у меня, к сожалению, нет ни времени, ни столь обширных географических познаний. Для работы данной возможности и создания баз объектов на других языках вы можете использовать как таблицы БД из русской версии системы, так и из англоязычной. Главное, чтобы они были идентичны установленным в системе. Обо всем подробнее в небольшом видео-обзоре:


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

Парсер контента для ICMS 2 | Компонент "Вкладки" для InstantCMS 2
Комментарии (139)
Алексей Тимофеев 30 декабря 2016 в 08:16 +1
small user social cms
Отличный компонент, в копилку полезняшек +
Alexprofi 30 декабря 2016 в 11:59 0
small user social cms
Прекрасная новость! Спасибо Вам за работу!
Владимир 30 декабря 2016 в 17:35 0
small user social cms
Отличная разработка! Спасибо!
Автор работает с большим опережением, внедряет то, что даже не успеваю предложить (например, варианты выбора авто- и модерируемых- переводов - просто класс!).
Игорь Lu 30 декабря 2016 в 19:55 0
small user social cms
Обалдеть shock
Спойлер
Игорь Lu 30 декабря 2016 в 22:06 +1
small user social cms
К стати, хочу добавить, если этот супер-компонент по переводу контента бесплатный и он, по моему, уже переводит абсолютно весь контент, то не пора ли его включить в официальную сборку Инстанта, чтобы при следующем обновлении системы не пришлось бы снова вносить изменения в файлах предусмотренные компонентом «Языки»!
Кто за? Ставьте плюс компоненту и его разработчику. Завалите его плюсами, чтобы это было убедительным аргументом для создателей замечательного Инстанта v

Спойлер
dwd 30 декабря 2016 в 22:49 +2
small user social cms
Если разработчики примут такое решение я буду только обеими руками за, но что-то мне подсказывает что этого не будет. И даже объясню почему - слишком много кода им придется перелопачивать чтобы это сделать. Понятное дело, что компонент получился более громоздким, чем если бы тот же функционал был реализован с вмешательством в файлы ядра, но мне потребовалось для этого более 1500 строк кода, причем пишу я обычно сжимая и объединяя строки там, где это только возможно. Я ни на что не претендую, все, что написано ниже это сугубо мое личное мнение.

В системе изначально нет четкой границы между ядром и шаблоном. Если разработчики читают комментарии, думаю они поймут о чем я. Нет такого места, где все переменные собраны, структурированы и подготовлены к выдаче в шаблон. Что-то приходится выдергивать в одном месте, что-то в другом. Вкладки групп и профилей, наборы, свойства, поля форм и многие другие вещи живут своей жизнью вообще не подозревая, что у системы есть ядро. Свойства при выводе объявлений получаются и выводятся прямо в шаблоне минуя контроллер, а при добавлении объявления при помощи ajax-запроса, в формах эти же свойства рендерятся прямо в html. И т.д. и т.п.

И пусть написанное мной будет воспринято адекватно. Я знаю как нелегко продумать архитектуру столь крупного и функционального продукта. И справились разработчики с этим на отлично. На мой взгляд описанное мной выше это единственный минус 2-й ветки Инстанта, все остальное реализовано разработчиками в лучшем виде и я даже не знаю стоит ли обращать внимание разработчиков на данный вопрос, ведь подобный функционал практически не востребован сообществом, а вы призываете их основательно перелопатить код системы.

Нужно ли это всему сообществу? Или повлечет за собой только кучу ненужной работы - перекраивание шаблонов, переписывание компонентов, виджетов? Рады ли будут этому пользователи системы? Ведь для тех, кому это не нужно это только головная боль, а таких большинство.
vikont 30 декабря 2016 в 23:46 +2
small user social cms
Постараюсь быть кратким и случайно ни за кого не решить вопрос...
1. Нужна ли многоязычность Инстанту? На этот вопрос ответили еще год назад! нужна и очень!
2. Заинтересованы ли сами разработчики в наличии многоязычности у родного движка? На этот вопрос тоже уже дан ответ при разработке компонента Мультиязычность. Да нужна.
Все это было до появления нового компонента "Языки", который оказался полной неожиданностью для многих и заставил пересматривать подход к многоязыковости Инстанта. В связи с этим возникают следующие вопросы:
3. Нужен ли компонент "Язык" Инстанту? Если он лучше других, тогда конечно нужен! Но использовать его как дополнительный функционал при столь тесном переплетении с кодом движка очень и очень проблематично...
4. Интересен ли компонент "Языки" разработчикам Инстанта - на этот вопрос отвечать им. Выскажу свое мнение, что скорее всего интересен, тем более, что интеграция в движек просится сама. Достойный компонент уже сейчас, практически как спрут вгрызается в код Инстанта. Но до полной интеграции еще много работы! А поэтому если разработчик сам поможет с интеграцией компонента "Языки" в Инстант, то кто будет против?
В итоге вопрос интеграции "Языков" в Инстант - это вопрос желания тесного взаимодействия обеих сторон. Как то так.
Это мое личное мнение. А мы потребители, конечно обеими руками ЗА.
dwd 31 декабря 2016 в 00:18 +2
small user social cms
Код компонента полностью открыт. Никто не мешает разработчикам посмотреть на те моменты, которые не удалось реализовать без правок и сделать соответствующие выводы. Также можно посмотреть как реализованы те или иные моменты перевода и сделать выводы о правильности/неправильности таких решений. Я уже говорил выше и скажу еще раз - я не претендую на доскональное знание системы и наверняка есть моменты, которые можно было реализовать проще и элегантнее. Так что пища для размышлений имеется. Да и я со своей стороны не против помочь если моя помощь потребуется.
Евгений 3 февраля 2017 в 21:52 0
small user social cms
Спасибо, компонент отличный, только не пойму перевод только из админки в ручную, или можно задать автоперевод при добавлении контента. Или например если есть текст на русском нажимаешь на английский а там ошибка отсутствующей страницы, может как нибудь реализовать перевод при обращении к странице на другом языке?
dwd 3 февраля 2017 в 22:02 0
small user social cms
Вы текст выше читали? Или сразу решили форсировать события вопросом?

Помимо перевода добавлена возможность управлять добавлением контента - доступно 3 варианта добавления контента на сайт: - Стандартный(весь контент добавляется на сайт в том виде, в котором его ввел пользователь) - Автоперевод(контент, добавленный пользователем будет автоматически переведен на все языки) - Полный контроль(пользователь может полностью контролировать процесс добавления контента и его перевода)
Олег Васильевич я 30 декабря 2016 в 23:38 0
small user social cms
Спасибо большое!
С Наступающим вас!
Iceman 6 января 2017 в 16:19 0
no avatar
Возникла проблема с формами при добавлении контента. Вместо полей выводится:
Код PHP:
  1. getOptions(); if($options['enable_forms']){ $model = cmsCore::getModel('languages');
и так далее, до конца кода заменяющего <?php echo $field->getInput($value); ?>.
Проблема появляется после замены templates/default/assets/ui/form.tpl.php.
Модуль обновлял с первой версии по инструкции.
Пробовал и ручное добавление необходимых правок, так и замену файлами из папки res. Куда копать в этом случае?
dwd 6 января 2017 в 16:33 0
small user social cms
Даже и не знаю что сказать - фантастика. Ни у кого не было таких проблем. Вариант только один: где-то неверно вставили код. Пришлите мне ваш файлик(почта есть в моем профиле), с ним явно что-то не так. Судя по тому, что PHP-код выводится? а не выполняется то вы где-то потеряли начало этого кода. Перед
Код PHP:
  1. getOptions();{
должно быть еще и
Код PHP:
  1. <? # перевод содержимого форм
  2. if(cmsCore::isControllerExists('languages')) {
  3. $controller = cmsCore::getController('languages');
  4. $options = $controller->
Iceman 6 января 2017 в 17:34 0
no avatar
Так собственно в том и дело, что файлик из папки res с модулем. И там полный код, но спотыкается он именно на getOptions();{
dwd 6 января 2017 в 19:24 0
small user social cms
1. Попробуйте переименовать переменные $options и $controller в данном фрагменте кода дам им любые другие имена.
2. Проверьте разные формы на сайте. При выводе каких возникает ошибка, а при выводе каких нет. 3.

Судя по тому, что пользуются компонентом многие, а проблема только у вас значит проблема скорее всего либо в сторонних компонентах, либо в самописных полях. Трудно делать предположения вслепую.
Iceman 7 января 2017 в 11:33 0
no avatar
Переименование переменных не помогло. Попробовав поудалять сбоящие строки, пришел к тому, что выполнение кода прекращается после появления в нем "->".
Не выводятся абсолютно все поля, включая админку. Сторонние компоненты в админке отключил - эффекто не дало. Отключил даже все остальные компаненты, которые имеют такую возможность, вплоть до собственно компонента "языки", что в общем то тоже не помогло. Версия Instant - 2.6.1
Самописные поля отключать пока не пробовал, как попробую - дополню комментарий.
Iceman 7 января 2017 в 11:38 0
no avatar
Кажется нашел в чем был косяк:
Если код начинался с
Код PHP:
  1. <? # перевод содержимого форм
возникала ошибка, но после его замены на
Код PHP:
  1. <?php # перевод содержимого форм
поля начали выводиться.
dwd 7 января 2017 в 11:47 +1
small user social cms
Спасибо, учту на будущее. Вообще это мой косяк, все вставки и должны начинаться с <?php, именно такое правило оформления кода изначально было принято разработчиками, видать неспроста. А тут я пропустил этот момент.
Старый балбес 7 января 2017 в 13:59 0
small user social cms
все вставки и должны начинаться с <?php, именно такое правило оформления кода изначально было принято разработчиками, видать неспроста
Разработчики не используют короткие теги по причине того что в
в php.ini должна быть включена опция short_open_tag,
А стандарт разрешает использовать и <?php, и короткие теги <?
http://www.php-fig.org/psr/psr-1/
Игорь Lu 9 января 2017 в 12:48 0
small user social cms
Обнаружил ещё проблему.
Когда в настройках сайта включаю функцию «Сжимать HTML», то перевод не срабатывает.
dwd 9 января 2017 в 15:43 +1
small user social cms
Из файла templates/default/assets/ui/form.tpl.php удалите последний блок
Код PHP:
  1. <script type="text/javascript">...</script>
заменив его строчкой
Код PHP:
  1. <?php $this->addJS('templates/default/js/translateform.js'); ?>
а в папку templates/default/js поместите файл, содержащийся в этом архиве.
Этот файл содержит код, удаленный из файла templates/default/assets/ui/form.tpl.php
Игорь Lu 9 января 2017 в 20:11 0
small user social cms
Спасибо, помогло joke
dwd 9 января 2017 в 15:50 0
small user social cms
Или же просто выровняйте в данном блоке данный фрагмент кода
Код PHP:
  1. $.post("<?php echo href_to('languages').'/translate_ajax'; ?>", { text: text, lang : lang })
  2. .done(function(data) {
в одну строку:
Код PHP:
  1. $.post("<?php echo href_to('languages').'/translate_ajax'; ?>", { text: text, lang : lang }).done(function(data) {
RBJ 11 января 2017 в 23:35 0
small user social cms
Хороший компонент, и комменты интересные
Поиск по переводу не работает look
Игорь Lu 12 января 2017 в 14:10 0
small user social cms
Обнаружена ошибка при переводе виджета категорий. При переводе берёт совсем другие названия категорий.
Привожу пример на скриншётах.

1. Статья на Русском:


2. Та же статья из той же категории но как видно на скриншёте названия категорий в виджете в сайдбаре изменились на несоответствующие данной категории статей.
dwd 12 января 2017 в 15:38 +2
small user social cms
В файле templates/default/controllers/content/widgets/categories/categories.tpl.php меняем вставленный код на :
Код PHP:
  1. <?php # перевод категорий
  2.  
  3. $system_lang = cmsCore::getLanguageName();
  4. $config = cmsConfig::getInstance();
  5. if(cmsCore::isControllerExists('languages') && $system_lang !== $config->language) {
  6. $url = explode('/', $this->controller->cms_core->uri);
  7. $model = cmsCore::getModel('languages');
  8. foreach($cats as $key=>$cat){
  9. $title = $model->filterEqual('item_id', $cat['id'])->filterEqual('ctype', $url[0])->filterEqual('lang', $system_lang)->getFieldFiltered('languages_cats', 'title');
  10. if($title) $cats[$key]['title'] = $title;
  11. }
  12. }
  13. # перевод категорий ?>
Игорь Lu 13 января 2017 в 01:57 0
small user social cms
Спасибо, теперь всё работает как положено :)
Владимир 22 марта 2017 в 07:59 0
small user social cms
Здравствуйте! Поставил этот код - в результате перевод виджета категорий происходит, но стало невозможным в этом виджете настроить вывод из отдельного типа контента, даже если его указываю в опциях виджета категорий, всё равно он определяется автоматически (показываются категории контента, в котором нахожусь), а мне нужно из отдельного типа контента (статически).
Причем, при переходе на русский (исходный) язык виджет работает опять правильно, но на переводимом языке вот такая ситуация. (инстант 271). Что посоветуете?
Владимир 22 марта 2017 в 09:18 0
small user social cms
Прошу прощения - не совсем верно сформулировал неисправность: (изначально не те файлы залил - от старой версии) - в общем, если установить сразу несколько виджетов категорий, настроенных на разные типы контента, то перевод происходит у первого, а на другие (второй и третий) вешается перевод первого. Др. словами, как сделать, чтобы все они переводились?
Нико 19 января 2017 в 00:00 0
small user social cms
При регистрации почему то не переводит Группу полей Анкета так и остается анкета но в профиле изменяется что можно сделать ?
Нико 19 января 2017 в 00:30 0
small user social cms
Да и в формах так же =( При редактирование профиля
Нико 19 января 2017 в 12:13 0
small user social cms
Значит у меня какой то баг, где можно посмотреть файл или базу почему не переводит ?
Нико 19 января 2017 в 12:18 0
small user social cms
В базе все переводит cms_languages_userfields
dwd 19 января 2017 в 12:22 0
small user social cms
Пройдите по ссылке http://ваш_сайт/admin/controllers/edit/languages/content/userfields/userfields и переведите все значения. Алгоритм перевода абсолютно всех форм на сайте един, поэтому если у вас переводятся все другие формы то думаю проблема заключается в том, что вы просто не перевели значения.
Нико 19 января 2017 в 12:38 0
small user social cms
Да я там же и перевёл =( В профиле переводится но когда редактирую нет, какой файл отвечает за перевод edi или форм при редактировании ?
dwd 19 января 2017 в 13:39 0
small user social cms
Полное описание вставок есть в файле readme.txt в архиве с компонентом. Я не знаю, что именно вы хотите там найти, но если интересно, то за перевод всех форм сайта отвечает одна единственная вставка в файле templates/default/assets/ui/form.tpl.php (строка ~ 170-180) и примерно строк 500 кода в файле system/controllers/languages/model.php, обслуживающих эту вставку. Я кстати поинтересовался у людей, использующих компонент, ваша проблема носит единичный характер, ни у кого таких проблем нет.
dwd 19 января 2017 в 14:02 0
small user social cms
Кстати, я правильно вас понял? Не переведены все поля группы? Или же не переводится только заголовок группы?
Нико 19 января 2017 в 16:09 0
small user social cms
Только заголовок то что анкета и так далее.
dwd 19 января 2017 в 16:19 0
small user social cms
Хорошо, заголовок не перевелся, это вы уже и раньше говорили. Что еще не перевелось? "так далее" это что такое? Чего из вас все клещами тянуть приходится? Если хотите чтоб вам помогли опишите подробнее, скриншотик сделайте. Можете мне на почту скинуть, можете прислать ваш файлик form.tpl.php, надо ж как-то ставить диагноз.
Нико 19 января 2017 в 16:43 0
small user social cms
Я просто сам не понимаю в чем дело все что было в папке закинул, form.tpl то что вы в папке res закинул, хочу отметить что на сайте 3 языка это может как то повлиять?
Нико 19 января 2017 в 16:48 0
small user social cms
Нико 19 января 2017 в 16:50 0
small user social cms
То что остальное переводится, просто я не перевел на англиском главное это Анкета группы
dwd 19 января 2017 в 16:58 0
small user social cms
У вас вообще перевод форм не работает, я не вижу ни одного переведенного поля - http://img-fotki.yandex.ru/get/112776/109657871.6/0_56a507_980436c3_orig.png, вы файлик form.tpl.php в папку какого шаблона закинули?
Нико 19 января 2017 в 17:08 0
small user social cms
Я их сам не перевел они переводятся вот у меня один шаблон стандартный
Нико 19 января 2017 в 17:09 0
small user social cms
Кстати дата рождения у вас тоже не переводится в компоненте тоже не выдает (
dwd 19 января 2017 в 17:40 0
small user social cms
Дата рождения не переводится, так и должно быть. Это не название поля( http://img-fotki.yandex.ru/get/171750/109657871.6/0_56a508_f6855365_orig.png) и хранится она черт знает где и ради нее писать столько же кода сколько ради всех остальных заголовков мне было лень. Лично я удаляю это поле сразу, при регистрации просить вводить дату это признак дурного тона.)) Все остальное должно перевестись.

1. В остальных формах(добавить контент, добавить категорию) у вас все переводится? Заголовки fieldset-ов все переведены?
2. Попробуйте заменить в файле forms.tpl.php(строка ~ 63)
Код PHP:
  1. if(isset($data['ctype_id'])) {
и (строка ~ 75)
Код PHP:
  1. if($current_controller = 'users' && isset($fieldset['title'])){
на
Код PHP:
  1. if(1 == 1) {
посмотреть на результат.
Нико 19 января 2017 в 17:53 0
small user social cms
Результат поля не перевелись и ну и группы тоже

forms.tpl.php * form.tpl.php
dwd 19 января 2017 в 17:47 0
small user social cms
строка ~ 75
Код PHP:
  1. if($current_controller = 'users' && isset($fieldset['title'])){
замените на
Код PHP:
  1. if(isset($fieldset['title'])){
и все должно заработать.
Нико 19 января 2017 в 17:57 0
small user social cms
А вот как в профиле
Нико 19 января 2017 в 17:59 0
small user social cms
Нет так же (((
Спойлер
dwd 19 января 2017 в 18:30 0
small user social cms
В конце блока после
Код PHP:
  1. $title = $model->getFieldFiltered('languages_userfields', 'title');
  2. if($title) $fieldset['title'] = $title;
вставьте строку
Код PHP:
  1. print_r($title);
Обновите страницу и посмотрите что выведет эта строка на странице регистрации. Вы должны рядом с заголовками видеть их перевод
Нико 19 января 2017 в 19:17 0
small user social cms
Код PHP:
  1. if(isset($fieldset['title'])){
  2. foreach($fieldset['childs'] as $key=>$child){
  3. $model = cmsCore::getModel('languages');
  4. $model->filterEqual('item_id', 0)->filterEqual('ctype', str_replace(' ', '_', $fieldset['title']))->filterEqual('lang', $system_lang);
  5. $title = $model->getFieldFiltered('languages_userfields', 'title');
  6. print_r($title);
  7. if($title) $fieldset['title'] = $title;
  8. }
  9.  
  10. }
Вот сделал но ничего не произошло, я установил на движок в локалке но так же и там.
dwd 19 января 2017 в 19:34 0
small user social cms
Вообще мистика какая-то. Ясно одно - нужная запись в БД не найдена. Попробуйте посмотреть что у вас в таблице - http://img-fotki.yandex.ru/get/51057/109657871.7/0_56a5a2_4cbb0914_orig.png, а я пока поставлю новый сайт на локалке и проверю на нем.
Нико 19 января 2017 в 19:42 0
small user social cms
cms_languages_userfields

Нико 19 января 2017 в 19:44 0
small user social cms
Взял сделал 0 Анкета вывелся как это ?
dwd 19 января 2017 в 19:49 0
small user social cms
Взял сделал 0 Анкета вывелся как это ?
Не понял вопроса
dwd 19 января 2017 в 19:46 0
small user social cms
Мистика да и только. Только что установил свежую копию системы, скачал из каталога дополнений компонент(версия 1.1.1), установил, залил папку res в корень сайта и перевел заголовок Анкета - http://img-fotki.yandex.ru/get/194425/109657871.7/0_56a5cd_48f0f411_orig.png. Все работает !!!!!!
Нико 19 января 2017 в 19:50 0
small user social cms
у меня item_id 3 я взял сделал его 0 он заработал
Нико 19 января 2017 в 19:50 0
small user social cms
у меня item_id 3 я взял сделал его 0 он заработал
dwd 19 января 2017 в 19:58 0
small user social cms
http://img-fotki.yandex.ru/get/51322/109657871.7/0_56a5d0_d4b09a47_orig.png
все заголовки связанные с профилем имеют item_id = 0, скажите, а вы переводили значения до обновления 1.1?
Нико 19 января 2017 в 20:04 0
small user social cms
Я просто взял установил компонент и все щас еще кое что проверю.
Нико 19 января 2017 в 20:11 0
small user social cms
Я не знаю правда что происходит прям уже страшно. При создании группы для полей он записывается как item_id 3, я уже 3 раз переименую 3 строки они сперва сохраняются потом опять переходят прежний вид, например Поле Привет перевел как hi, но потом перевел hi my name is и сохранил да показывал правильно но потом опять hi стал не пойму что происходит может удалить компонент потом опять уснановить ?
dwd 19 января 2017 в 16:49 0
small user social cms
У меня на тестовом сайте языка 4. Это никак ни на что не влияет. У вас их может быть 53 и все будут работать.
Нико 19 января 2017 в 20:15 0
small user social cms
Как это может быть ?
dwd 19 января 2017 в 20:23 0
small user social cms
Элементарно. В одной таблице хранятся и заголовки полей и подсказки и заголовки fieldset-ов, просто они имеют разные ctype
ermakover 19 января 2017 в 19:06 0
small user social cms
На 2.5.1. поставил - сайт сломался. На 2.6.1 установилось нормально. Автору спасибо!
Игорь Lu 6 февраля 2017 в 23:33 0
small user social cms
Обновил сегодня Инстант до версии 2.7.0 и некоторые функции перестали работать. Это касается перевода статей при добавлении или редактировании статей.
Заменились системные файлы самого движка на новые и это естественно повлияло на работоспособность компонента.
Хотелось узнать, будет ли обновление компонента «Языки» под последнюю версию Инстант?
dwd 7 февраля 2017 в 01:50 0
small user social cms
Только зря потратил пол часа, все работает. Версия системы 2.7. Ответ на свой вопрос ищите в тегах:
dwd 7 февраля 2017 в 01:51 +1
small user social cms
Это 2 варианта - английский и русский. Добавлены одним махом с использованием автоперевода.
@Razumdar 10 февраля 2017 в 15:54 0
small user social cms
Здравствуйте! Есть проблемка - когда новый пользователь добавляет фото на аватар - английская версия при заходе на его страницу выдает картинку. Тоже самое происходит, когда этот аватар отражается в виджете активность (он у меня был на главной странице, вылетала главная страница) Что посоветуете?
@Razumdar 10 февраля 2017 в 15:56 0
small user social cms
Пардон, картинка не прикрепилась. Вот
@Razumdar 10 февраля 2017 в 15:59 0
small user social cms
dwd 10 февраля 2017 в 17:07 +1
small user social cms
Файл system/controllers/languages/hooks/activity_before_list.php замените этим.
yury 10 февраля 2017 в 17:50 0
no avatar
скажите пожалуйста, на 2.7 корректно работает данное дополнение?
dwd 10 февраля 2017 в 17:57 +1
small user social cms
При переходе на 2.7 проблем не было обнаружено. При свежей установке тоже.
@skynet 10 февраля 2017 в 19:16 0
no avatar
Если делать чистую установку работает без проблем.
Если есть другие плагины, то можете получить ошибку 500. Полностью падает кмс.
@Razumdar 10 февраля 2017 в 19:51 +1
small user social cms
С профилями помогло, с виджетом активности нет. Ну мне он пока не обязателен, просто чтобы вы были в курсе, что есть такая проблема. В любом случае, большое спасибо!
dwd 10 февраля 2017 в 20:41 0
small user social cms
http://img-fotki.yandex.ru/get/165720/109657871.c/0_56b807_220c5684_orig.png - InstantCMS 2.7, виджет активности на главной странице.
http://img-fotki.yandex.ru/get/201221/109657871.c/0_56b808_74093e7e_orig.png - на других страницах сайта.
Включайте режим отладки, читайте ошибку.
@Razumdar 11 февраля 2017 в 07:20 0
small user social cms
Ошибка та же, что на картинке
dwd 12 февраля 2017 в 17:31 0
small user social cms
А вы сделайте все-таки скриншотик пожалуйста. Ошибка то та же, но в другом файле, хочется увидеть в каком.
@Razumdar 13 февраля 2017 в 08:53 0
small user social cms
Теперь ошибка не выводится, добавились новые пользователи и в ленте активности нету этих аватаров, из-за которых вылетало. Посмотрим, если повторится - сделаю картинку.
@Razumdar 14 февраля 2017 в 09:52 0
small user social cms
Вот, возникла снова. Публикую картинку
@Razumdar 14 февраля 2017 в 09:52 0
small user social cms
dwd 14 февраля 2017 в 13:59 0
small user social cms
Не знаю откуда у вас берется эта ошибка, во всех версиях Инстанта тип контента определяется верно - http://img-fotki.yandex.ru/get/48069/109657871.c/0_56bd14_592089a_orig.png. Система установлена не в корень сайта?
@Razumdar 14 февраля 2017 в 16:16 0
small user social cms
Пути есть на картинках, в public_html установлена.
Кстати, это считается в корень или не в корень?
В принципе, проблема не критичная, без виджета активности жить можно. Если она у меня одного такая, то и бог с ней
dwd 14 февраля 2017 в 16:25 0
small user social cms
Речь не о папке, а об URL главной страницы сайта. Главная страница сайта расположена по адресу http://site.ru или http://site.ru/folder ? При втором варианте думаю наличие подобной ошибки возможно(не проверял). При первом варианте такой ошибки нет, у меня ее воспроизвести не получается. На скриншоте в прошлом моем комментарии показан результат работы строки, которая у вас приводит к ошибке. Я проверил на 2.5, 2.6, 2.7 - таких проблем как у вас нет.
@Razumdar 12 февраля 2017 в 16:55 0
small user social cms
Сделал ручной перевод биллинга. Английский у меня на четыре с минусом, но думаю будет понятно пользователям. Чтобы работал, нужно в папке system/languages/en/controllers создать папку billing и положить туда этот файл, переименовав его из billingeng.php в billing.php
Платежные системы переводить не стал, у иностранцев они другие. Так же не было нигде языковой константы для вкладки в профиле "Личный кабинет" она пока осталась без перевода, как решу - дополню этот комментарий. На странице, куда вы перейдете по ссылке, можно ознакомится с текстом перевода, а внизу поста скачать прикрепленный файл billingeng.php
Пользуйтесь.
Alexandr18181 20 февраля 2018 в 18:16 0
small user social cms
Спасибо! , а что делать если в папке system/languages/en/controllers уже есть папка billing и файл billing.php
просто добавить в нее ваш (код) или заменить ?
dwd 21 февраля 2018 в 07:20 0
small user social cms
Вы откройте его и посмотрите что в нем. Я думаю это копия из ru и содержит она русские тексты. заменив ее получите английский перевод.
@Razumdar 12 февраля 2017 в 16:56 0
small user social cms
Забыл саму ссылку - https://smart-people.org/pages/tempbill.html Жалко нельзя редактировать комментарии.
Iceman 25 февраля 2017 в 13:41 0
no avatar
Нашелся косяк с выводом полей "список":
После замены <?php echo $field->getInput($value); ?> в файле templates/default/assets/ui/form.tpl.php у полей вырезается символ "1" как в содержании полей, так и в принципе при выводе. Например: Если в поле была опция 1, она вырезается полностью, если было 1+2, остается только +2, если в свойствах chosen было прописано width='100%', в вывод попадает width='00%'.
Куда можно покопать в этом случае?
dwd 25 февраля 2017 в 16:54 +1
small user social cms
Эта вставка работает только при заполнении форм и подобной проблемы нет:

Думаю причину стоит искать в другом месте. Версия системы на скрине - 2.7.1
Iceman 26 февраля 2017 в 22:37 0
no avatar
Имелось ввиду не номера, а именно цифра "1" в содержимом поля. Список вида: 1, 2, 12, 14 выводится как 2, 2, 4
Iceman 26 февраля 2017 в 22:48 0
no avatar
Собственно вот скрин из версии 2.7.1:


Что интересно, если добавить нумерацию, то выводится нормально.
dwd 26 февраля 2017 в 22:55 +1
small user social cms
Я ж говорю - ищите в другом месте, в компоненте "Языки" такой проблемы нет:
dwd 26 февраля 2017 в 23:15 +2
small user social cms
У меня получилось воспроизвести вашу проблему. Замените в файле system/languages/model.php (строка 994) строку
Код PHP:
  1. $val = str_replace(trim($fi_t[$k]), trim($is_t[$k]),$val);
на
Код PHP:
  1. if($is_t[$k]) $val = str_replace(trim($fi_t[$k]), trim($is_t[$k]),$val);
и проблема исчезнет.
Iceman 27 февраля 2017 в 21:30 0
no avatar
Спасибо, помогло!
Еще небольшой вопрос, Вы обновляли у себя системные файлы модели и поля для geo до версии 2.7.1? Если да, можете выложить обновленную версию?
dwd 28 февраля 2017 в 00:18 +1
small user social cms
Я данным полем вообще не пользуюсь потому файлы не обновлял, но если вам нужно - держите. Тут многие обещали базу городов перевести и выложить и ни слуху ни духу, я думал не нужно никому.))))))
Iceman 28 февраля 2017 в 22:31 0
no avatar
Очень даже нужно, спасибо! :)
Стандартную базу мне кажется особого смысла переводить нет, в ней много чего не хватает, поэтому думаю каждый самостоятельно её дорабатывает под свои нужды, поэтому для меня тут главное именно возможность подцепить перевод :)
Игорь Lu 7 марта 2017 в 15:35 0
small user social cms
Появился вопрос :)
Я тут себе хотел подключить редактор Tiny MCE к текстовым полям, но при переходе на Tiny MCE текстовые поля перестали переводиться. Это проблема редактора, или надо вносить какие-то изменения в самом компоненте Языки?
dwd 7 марта 2017 в 16:30 0
small user social cms
Понятия не имею - http://img-fotki.yandex.ru/get/108697/109657871.11/0_56e037_5608f43e_orig.png
Кнопки перевода с tinymce работать не будут это факт, а сам редактор показываться должен без проблем. Компонент языки никак на это не влияет.
Игорь Lu 7 марта 2017 в 19:15 0
small user social cms
Меня как раз кнопки перевода и волновали. И сделать ничего нельзя, чтобы они работали?
dwd 8 марта 2017 в 07:16 0
small user social cms
вот строка в файле form.tpl.php, вставляющая перевод в редактор:
http://img-fotki.yandex.ru/get/196486/109657871.11/0_56e038_a2eccd95_orig.png
Ее надо править под tinymce
Игорь Lu 9 марта 2017 в 01:22 0
small user social cms
Эх, знать бы ещё, что именно править. Жаль, что я не программист :(
dwd 9 марта 2017 в 08:44 0
small user social cms
Принцип примерно такой:
Код PHP:
  1. tinyMCE.execCommand('mceInsertContent', false, val.text);
Читайте документацию да и гугл в помощь.
@BonBon 9 марта 2017 в 15:56 0
no avatar
Могут ли возникнуть проблемы с сохранением полей профиля после установки компонента языки?Не уследил когда перестало работать!При нажатии на кнопку сохранить нечего не происходит в админку пишет ошибки в форме.
dwd 9 марта 2017 в 16:09 0
small user social cms
Нет, проблем быть не должно. Подобных проблем замечено не было. И я так и не понял при чем тут админка.
Владимир 24 марта 2017 в 16:45 0
small user social cms
При попытке перевода групп (название группы и описание) перевод происходит, но потом он не полностью сохраняется, если описание достаточной длинны. Посмотрел в базе - поле description для группы имеет тип varchar 128 - я его заменил на text и тогда потери длинного текста в переводе прекратились. Нет ли подводных камней в таком исправлении (всё ли верно сделал?)
И второй вопрос:
При переводе поля типа text в контенте теряются символы перевода строки <br> т.е. имеем исходный текст расположенный в столбик:
Код PHP:
  1.  
  2. - первая строка
  3. - вторая строка
  4. - третья строка
а при переводе он преобразуется в
Код PHP:
  1.  
  2. - First line - second line - the third line
  3.  
и даже если потом вручную в форме подкорректировать перевод строк (расположить в столбик) - в таблицу компонента Языки пишется без <br>, хотя в исходной не переведенной части присутствуют <br>. Т.е. формат вывода в конечном итоге не идентичный. Как это можно поправить?
dwd 24 марта 2017 в 17:02 0
small user social cms
При попытке перевода групп (название группы и описание) перевод происходит, но потом он не полностью сохраняется, если описание достаточной длинны. Посмотрел в базе - поле description для группы имеет тип varchar 128 - я его заменил на text и тогда потери длинного текста в переводе прекратились. Нет ли подводных камней в таком исправлении (всё ли верно сделал?)
Ход действий правильный. Но если вам не хватает 128 символов логичнее было бы просто увеличить это число оставив тип varchar, например varchar 256
При переводе поля типа text в контенте теряются символы перевода строки <br> т.е. имеем исходный текст
Где у вас наблюдается такая картина? При переводе в админке или при переводе с фронтэнда?
Владимир 24 марта 2017 в 17:16 0
small user social cms
Спасибо за быстрый ответ! (varchar 256 не хватает) - а если описание группы будет внушительным, опять срежет.
Где у вас наблюдается такая картина? При переводе в админке или при переводе с фронтэнда?
в обоих случаях независимо от фронтеда и админки.
dwd 24 марта 2017 в 17:15 0
small user social cms
Проверил перевод текста с переносами строк - все переносы строк остаются на месте.
До нажатия кнопки "Перевести": http://img-fotki.yandex.ru/get/43843/109657871.14/0_56f80e_5fbe1a87_orig.png
После нажатия кнопки: http://img-fotki.yandex.ru/get/105020/109657871.14/0_56f80f_25ab20b3_orig.png
Владимир 24 марта 2017 в 17:26 0
small user social cms
это немного не тот случай, о котором говорю - да в таком варианте всё хорошо работает.
Имеется в виду следующее:
при записи (на этом этапе) в таблицу Языков переведенного поля типа text (именно этого поля) - в форме этого поля не видно сразу br, но они то есть и после перевода исчезают.

Чтобы смоделировать ситуацию попробуйте скопировать из html редактора в поле ввода текста от text набор строчек с <br>
dwd 24 марта 2017 в 17:30 0
small user social cms
Запись в таблицу Языков происходит в тот момент как вы нажали кнопку Сохранить. До этого вы видите только тот текст, который сожержит ваше поле. Если тегов <br> в этом тексте нет, значит их нет и в исходном тексте. Если они есть, то при переводе никуда не денутся.
Владимир 24 марта 2017 в 17:40 0
small user social cms
Так должно быть....
Отвечаю как понимаю ситуацию: на ваших скринах всё верно, но если поле будет типа text , то там редактора не должно быть а только форма, вот в этой форме и расположенные ранее в столбик слова фактически имеют между собой <br> но ведь мы их (брейки) не видим (т к режим не html)
При переводе этого и перевод правильно (казалось бы) расположен в столбик, но если запишем результат и посмотрим запись контента вживую - получаем потерю построчного расположения (а при сравнении в инспекторе результирующего html как и при сравнении записи в исходной базе поля и переведенной видна пропажа <br>.
dwd 24 марта 2017 в 20:01 0
small user social cms
В таблицах как раз с этим полный порядок. Тексты в таблицах контента и компонента Языки идентичны. Форматирование теряется при выводе. Замените строку 54 в файле system/controllers/languages/hooks/content_before_item.php c
Код PHP:
  1. if(isset($is_translate[$key]))$fields[$key]['html'] = $is_translate[$key];
на
Код PHP:
  1. if(isset($is_translate[$key]))$fields[$key]['html'] = nl2br(htmlspecialchars($is_translate[$key]));
dwd 24 марта 2017 в 20:04 0
small user social cms
Извиняюсь, погорячился, это подействует только на часть полей. Правильнее заменить строку 64 с
Код PHP:
  1. $fields[$k]['html'] = str_replace($title, $item['title'], $fields[$k]['html']);
на
Код PHP:
  1. $fields[$k]['html'] = nl2br(htmlspecialchars(str_replace($title, $item['title'], $fields[$k]['html'])));
Владимир 24 марта 2017 в 22:31 0
small user social cms
После замены 64:
брейки, о которых говорил стали выводиться корректно - строки не соединяются -)
... но другие html теги выводит в виде символов в тестах, т.е. в выводимом коде они например, виде
Код PHP:
  1. div class=&quot;class-1&quot;&gt;
Например, дата публикации тоже трансформируется в
Код PHP:
  1. &lt;time datetime="2017-03-09T19:54:02+03:00"&gt;09.03.2017&lt;/time&gt; &lt;span class="time"&gt;19:54&lt;/span&gt;
а должны быть неизменными, т.е.
Код PHP:
  1. <div class="class-1">
Владимир 24 марта 2017 в 22:37 0
small user social cms
в общем, и <p> и все что связано с кавычками и < > крушит
dwd 24 марта 2017 в 22:42 0
small user social cms
Строка 64:
Код PHP:
  1. if($fields[$k]['type'] == 'text') $fields[$k]['html'] = nl2br(htmlspecialchars(str_replace($title, $item['title'], $fields[$k]['html'])));
dwd 24 марта 2017 в 22:44 0
small user social cms
И следом за ней еще одна для других полей:
Код PHP:
  1. else $fields[$k]['html'] = str_replace($title, $item['title'], $fields[$k]['html']);
Владимир 24 марта 2017 в 22:55 0
small user social cms
Пока полёт нормальный (в text поле выводит брейки корректно, в других не трогает < > и кавычки) dance
Спасибо!
Приятно работать с профессионалом!
Если что замечу - сообщу (странно, что никто раньше не заметил) - я тщательный тестер ( ещё не было секунд проверить ваши вкладки и парсер -) )
Владимир 26 марта 2017 в 06:15 0
small user social cms
В виджете Тегов переведенные теги не отображаются => показываются все теги на русском. Вообще вроде нет функционала для показа тегов в виджете, или я ошибаюсь?
Владимир 29 марта 2017 в 21:56 0
small user social cms
При выводе результатов поиска по тегам вкладки категорий, в которых расположены найденные результаты выдаются без перевода.
dwd 29 марта 2017 в 22:11 0
small user social cms
Вы имеете в виду типы контента. Так и есть. Они не переведены ни в поиске ни в группах.
Владимир 29 марта 2017 в 22:20 0
small user social cms
Вот было бы хорошо "дожать" их.
Владимир 30 марта 2017 в 05:50 0
small user social cms
А вот не согласен с вами! Это заголовки списка записей при ближайшем рассмотрении и они успешно переводятся в первом главном окне Вашего компонента наряду с заголовками списка в профиле. Спрашивается, зачем? Если заголовки списка в профиле успешно в нём выводятся, то почему нельзя вывести эти заголовки?
dwd 30 марта 2017 в 16:08 0
small user social cms
Перевести можно все что угодно. Вопрос только в том, где эти значения можно перехватить. Те заголовки о которых вы говорите получаются в шаблоне и вываливаются в него в виде HTML-кода. Вот код из файла templates/default/controllers/search/index.tpl.php:

Код PHP:
  1. <div id="search_results_pills">
  2. <?php $this->menu('results_tabs', true, 'pills-menu-small'); ?>
  3. </div>
И тут у нас 2 варианта - либо перехватывать ваши заголовки в HTML-формате и парсить сам HTML, заменяя значения(что довольно дорого по ресурсам), либо идти в заветную папочку system/core и крушить файл template.php встраивая в нее нужные нам изменения.
Владимир 30 марта 2017 в 22:58 0
small user social cms
С точки зрения потребителя
С точки зрения программиста, вам виднее по какому пути пойти - ресурсоёмкому, но более жизнеспособному при последующих обновлениях системы, либо более рискованному. Могу лишь обратить внимание на то, что если, к примеру, не подталкивать специально пользователя на поиск по тегам, то данный функционал будет относительно редко и адекватно использоваться и вполне разумно попробовать реализовать первый вариант вывода. Но, как говорится, Вам решать, а нам просить.
dwd 30 марта 2017 в 16:19 0
small user social cms
они успешно переводятся в первом главном окне Вашего компонента наряду с заголовками списка в профиле. Спрашивается, зачем?
Для того чтобы формировать правильные тайтлы страниц, например. Ведь не только в этом месте используются данные значения. Вот здесь я уже разщвернуто объяснил почему некоторые фрагменты перевести, не изменяя системных файлов практически невозможно.
Владимир 31 марта 2017 в 15:36 0
small user social cms
Не выводит в переведенном виде поле типа "список" с предустановленными значениями в фильтре поиска. Он (список со значениями) успешно переводится и выводится как надо в контенте, но вот в фильтре поиска - нет, значения остаются на русском (исходном).

Кстати, в таблице languages_fields поле title было varchar (128) - оказалось маловато для сколько-нибудь реального списка выбора - подкорректировал на varchar (192) т.к. туда записываются эти списки и изначально их срезало.
Олег Васильевич я 8 апреля 2017 в 14:01 0
small user social cms
dwd, спасибо за шикарное дополнение!
Кто-то ставил на 2.7.1? Правильно работает? К примеру, связи не "улетучиваются"?
Владимир 8 апреля 2017 в 15:03 0
small user social cms
2,7,1 - правильно работает, ставил.
Олег Васильевич я 8 апреля 2017 в 17:25 0
small user social cms
Тексты в виджетах "HTML блок" и "Текстовый блок" нет возможности перевести? Никак не найду.
Спасибо!
dwd 8 апреля 2017 в 17:33 0
small user social cms
Все виджеты разные и имеют разную структуру хранения данных. Т.е. под каждый виджет нужно писать свой переводчик. У меня не было в этом потребности, а делать лишь бы делать - нет ни сил ни времени.
Олег Васильевич я 8 апреля 2017 в 18:04 0
small user social cms
Ясно.
Может здесь что-то посоветуете?
За компонент таки огромное спасибо!
dwd 8 апреля 2017 в 18:56 0
small user social cms
По поводу (типа if ($core->uri == "en/stranica")) если я правильно понял ваш вопрос то делается это так:
Код PHP:
  1. $url = explode('/', $core->uri);
  2. if($url[0] == 'en') {делаем чего нужно} //если язык не является языком по умолчанию
  3. if($url[0] = 'en') {делаем чего нужно} //если язык не является языком по умолчанию
  4. if($url[1] == 'stranica') {делаем чего нужно}//в зависимости маски если язык не тот, что выставлен по умолчанию
  5. if($url[0] == 'stranica') {делаем чего нужно}//в зависимости маски если язык тот, что выставлен по умолчанию
  6.  
Также можно использовать:
cmsCore::getLanguageName();// текущий язык страницы
Код PHP:
  1. $config = cmsConfig::getInstance(); // и тогда $config->language - язык по умолчанию
Олег Васильевич я 9 апреля 2017 в 19:58 0
small user social cms
Спасибо!