User Tools

Site Tools


ru:plugins:tips

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
ru:plugins:tips [2013/10/11 11:53]
Arkady [Советы и рекомендации]
ru:plugins:tips [2013/10/18 09:49]
Arkady [Displaying custom and localized Dates]
Line 1: Line 1:
 ====== Советы и рекомендации ====== ====== Советы и рекомендации ======
  
-Если вы разработчик плагинов – вам следует ознакомиться с новой системой ​проверки наличия их обновлений,​ интегрированной в GetSimple 3.1.  +Если вы разработчик плагинов – вам следует ознакомиться с новой системой обновлений,​ интегрированной в GetSimple 3.1. Начиная с этой версии, GetSimple ​уведомляет пользова-теля при появлении новой версии плагина для загрузки в секции сайта GS Extend. ​При разработке плагина для достижения его совместимости с новой системой необходимо следовать рекомендациям,​ изложенным в секции ВИКИ ​[[ru:​plugins:​update notifications|"​Взаимодействие плагинов и секции Extend сайта get-simple.info"​]]
- +
-If you are a plugin developeryou should be aware of the new update system that is being integrated into GetSimple ​3.1. Starting with this release, the GetSimple installation will now notify a user when a new version of that particular plugin is available for download within ​Extend. [[ru:​plugins:​update notifications|These steps]] will help you as a developer to ensure that your plugin is compatible with this new process. ​+
  
 ===== Определение версии GetSimple ===== ===== Определение версии GetSimple =====
  
-Определение версии GetSimple – не такая простая задача,​ так как единственная доступная функция ''​return_site_ver()'',​ выводящая на экран номер версии в GS 2.03 и возвращающая результат в версии 3.0b уже устарела (прим. переводчика – пометка о том, что данная функция устарела [[themes:​template_tags| в списке тэгов англоязычной Вики отсутствует]]). Самый простой способ определить,​ установлен ли плагин под GetSimple 2.03 или 3.0+:+Определение версии GetSimple – не такая простая задача,​ так как единственная доступная функция ''​return_site_ver()'',​ выводящая на экран номер версии в GS 2.03 и возвращающая результат в версии 3.0b уже устарела (прим. переводчика – пометка о том, что данная функция устарела ​(??) [[themes:​template_tags| в списке тэгов англоязычной Вики отсутствует]]). ​ 
 +На самом деле, по заявлению разработчиков,​ ''​return_site_ver()''​ применяется до сих пор и не является устаревшей. 
 + 
 +Самый простой способ определить,​ установлен ли плагин под GetSimple 2.03 или 3.0+:
  
 <​code>​ <​code>​
Line 21: Line 22:
 ===== Обход отсутствия хука Page-Delete в 2.03 ===== ===== Обход отсутствия хука Page-Delete в 2.03 =====
  
-To trigger a function ​myplugin_function ​on page deletes in GetSimple 2.03 and 3.0+ use the following code:+Для запуска функции вашего плагина ​myplugin_function ​при удалении страницы в GetSimple 2.03 и 3.0+ применяйте следующий код:
  
 <​code>​ <​code>​
Line 55: Line 56:
 </​code>​ </​code>​
  
-===== Displaying custom and localized Dates  ​===== +===== Вывод на экран локализованных дат и дат в пользовательском формате ​ ​===== 
- +Дата публикации страницы в XML-файлах GS хранится в английском текстовом форматекоторый может быть сконвертирован в UNIX-время:​
-The publication date in the page XML files is stored in an english text formatwhich can be converted to a UNIX timestamp with +
 <​code>​ <​code>​
 $timestamp = strtotime($data->​pubDate);​ $timestamp = strtotime($data->​pubDate);​
 </​code>​ </​code>​
  
-GetSimple ​itself uses the ''​date''​ function to display dateswhich will work with other languages only when no weekday or month names are displayedas these will always be in english.+GetSimple ​использует для отображения дат функцию //date//которая подходит и для других языковесли не требуется показывать названия дней недели и месяцев,​ так как они всегда будут на английском.
  
-To display a truly localized date, use:+Для вывода на экран локализованного значения даты следует применять следующий метод:
  
 <​code>​ <​code>​
-$dateLocale = '​de_DE,​de,​ger,​deu'; ​     // or use $LANG or a setting in your plugin, ​ +$dateLocale = '​de_DE,​de,​ger,​deu'; ​     // или используйте ​$LANG или соответствующую установку в вашем плагине ​ 
-                                       // ​for OS compatibility multiple locales should be possible +                                       // ​для совместимости с разными ОС должны допускаться различные локали 
-$dateFormat = "%A, %d.%m.%Y - %H:​%M"; ​ // should be a entry in the i18n language file of your plugin +$dateFormat = "%A, %d.%m.%Y - %H:​%M"; ​ // эта запись должна быть в языковом файле вашего плагина 
-                                       // ​for the format see PHP function ​strftime +                                       // ​возможные значения формата – в документации к PHP-функции ​strftime 
-$oldlocale = setLocale(LC_TIME,​ '​0'​); ​ // save old locale+$oldlocale = setLocale(LC_TIME,​ '​0'​); ​ // сохраняем старую локаль
 setlocale(LC_TIME,​ preg_split('/​s*,​s*/',​ $dateLocale)) setlocale(LC_TIME,​ preg_split('/​s*,​s*/',​ $dateLocale))
-echo strftime($dateFormat,​ $date); ​    // $date is a UNIX timestamp +echo strftime($dateFormat,​ $date); ​    // $date -  ​UNIX-время (timestamp) 
-setLocale(LC_TIME,​ $oldlocale); ​       // restore old locale+setLocale(LC_TIME,​ $oldlocale); ​       // восстанавливаем старую локаль
 </​code>​ </​code>​
 +===== Обход ошибки при установке cookie на сайт в GS 3.0 =====
  
-===== Working around the broken ​sitewide ​cookies in GS 3.0 ===== +Этот важнейший для сайта (sitewide) cookie-файл в GS 3.0 содержит корректную информацию только для пути ​/admin.
- +
-The important cookie is only valid for path /admin. +
-There is no (easy?) way to correct the problem for the frontend. +
-However, if you need it for the backend, e.g. linking to a php somewhere in the plugins folder, you can add the following code to your plugin (e.g. directly after setting up the hooks):+
  
 +Способа (или простого способа?​) ​ исправить ситуацию для фронтенда не существует. Тем не менее, если вам для бэкенда требуется совершить какое-то действие,​ например,​ под-ключить какой-то php-файл из папки плагина,​ вы можете добавить следующий код к ва-шему плагину,​ например,​ сразу после установки хуков:
 <​code>​ <​code>​
 if (!myplugin_is_frontend() && myplugin_gsversion() == '​3.0'​) { if (!myplugin_is_frontend() && myplugin_gsversion() == '​3.0'​) {
Line 100: Line 97:
 </​code>​ </​code>​
 Замените //​myplugin//​ наименованием своего плагина. Замените //​myplugin//​ наименованием своего плагина.
 +
 +====== Ссылки ======
 +
 +На главную [[ru:​|Содержание]]
 +
 +===== Страницы этой секции =====
 +
 +=== Разработка плагинов ===
 +  *[[ru:​plugins:​creation|Создание плагинов ]]
 +  *[[ru:​plugins:​extend_api|Работа с  Extend API ]]
 +  *[[ru:​plugins:​hooks_filters|Хуки и фильтры]]
 +  *[[ru:​plugins:​tabs_menus|Вкладки и боковые меню]]
 +  *[[ru:​plugins:​update_notifications|Взаимодействие плагинов и секции Extend сайта get-simple.info]]
  
ru/plugins/tips.txt · Last modified: 2013/10/18 09:51 by Arkady