Вопросы разработчика

FAQ
На оф. комьюнити был топик с вопросами, решил ответы также опубликовать здесь.

Пожалуй самым необходимым, по моему мнению, есть предложение создать отдельную таблицу в базе данных для настроек разных плагинов и объект для работы с этой таблице. Без этой таблицы очень тяжело делать нормальную админку для плагина прямо в CMS. Настройки в файлах это конечно быстро, но очень не удобно, особенно для пользователей, потому я принципиально ничего не храню в конфигурационных файлах, кроме имен таблиц и правил роутинга.

Это давно уже реализовано в плагине-библиотеке Config Engine, который организует хранилище типа «ключ=значение», а также сохраняет конфиги плагинов в БД и делает возможным их автоматический старт при загрузке ядра ЛС.

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

Можно. Нужно добавить второй параметр-массив в метод добавления ЖС или КСС с ключом merge указывающим на false:


    //
    // отключение слияния для нужных файлов в общий файл
    //

    // для добавления css файла:
    $this -> Viewer_AppendStyle ($sTemplateWebPath . 'css/style.css', array ('merge' => false));
    // для добавления js файла:
    $this -> Viewer_AppendScript ($sTemplateWebPath . 'js/init.js', array ('merge' => false));


это невозможность брать языковые константы из ява скриптов. Точнее есть какое-то ls.lang.get, но оно не берет ни з языковых файлов плагина, ни с файлов шаблона, а это значит что нормально диалог подтверждения не сделать. Этот момент на самом деле не критичный, так, мелкое неудобство, но всё равно решил написать.

Чтобы получить текстовку в JS из ls.lang.get() нужно её сначала туда поместить:

1. через шаблон:


<script>
  jQuery (document).ready (function ($) {
    ls.lang.load ({lang_load name="blog_join,blog_leave"});
  });
</script>


Важно: при перечислении ключей текстовок не использовать пробел после запятой.

2. или из php:


$this -> Lang_AddLangJs (array (
  'blog_join', 'blog_leave'
));

Примечание: такие текстовки будут загружены через шаблон кодом, указанным чуть выше, в файле header.tpl вашего шаблона.

потом такие текстовки доступны в ЖС через вызов:


ls.lang.get ('blog_join')


Важно: следует помнить про префиксы для текстовок плагинов (plugin.pluginName).
0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.