
proger.su
+13
Репутация
0
Рейтинг
Стартовая структура для таблицы с переводами контента возвращается методом getContentTableStruct
Для формирования формы для перевода контента используется метод getContentItemForm и addSeoFields
Хуки были добавлены что бы в базе не оставлись не используемые переводы. К примеру при удалении меню, пунктов меню, контента, типа контента, поля контента и т. д.
Я бы советовал взять решения, потому что я добавил много полезных штук. К примеру переводы названий полей контента. На простых сайтах это не сильно актуально, а если в контенте много полей, то это уже нужно, к примеру как на этой странице http://03info.com/medications/1-almagel.html
Сегодня уже поздно, завтра более подробно опишу что было сделано.
https://github.com/my-instantcms/icms2_multilang/pull/1
На инсталлер пока времени нету, все остальное я делал на рабочему сайте, а он там не нужен был.
/system/controllers/content/model.php
cmsEventsManager::hook('ctype_field_after_update', array($field, $field_old, $ctype_name, $this));
/system/controllers/menu/model.php
cmsEventsManager::hook('menu_item_after_delete', $item_id);
/system/controllers/menu/model.php
cmsEventsManager::hook('menu_before_delete', $id);
/system/controllers/content/frontend.php
list($ctype, $items, $fields) = cmsEventsManager::hook('content_before_list', array($ctype, $items, $fields));
list($ctype, $items, $fields) = cmsEventsManager::hook("content_{$ctype['name']}_before_list", array($ctype, $items, $fields));
Также добавил возможность переводить названия полей в типе контента.
Уже добавляются/удаляются таблицы при добавлении/удалении типов контента.
Добавляются/удаляются ячеки при добавлении/удалении полей.
Сейчас делаю что бы удалялись переводы при удалении контента, меню и т. д.
Я дорабатываю плагин. В нем поля в форме "фиксированые", я сделал "динамические", выводятся те что в типе контента.
Столкнулся с проблемой, создания таблиц в бд. Хуков при создании/удалении полей в типе контента нет, что бы можно было обновлять структуру таблиц с переводами.
Подскажите, может есть еще варианты кроме как, при каждом сохранении перевода проверять ячейки в бд, лишние удалять, недостающие добавлять?
Спасибо!