This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
ru:plugins:tips [2013/10/15 10:53] vladislav [Определение версии GetSimple] |
ru:plugins:tips [2013/10/18 09:49] Arkady [Displaying custom and localized Dates] |
||
---|---|---|---|
Line 22: | 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 56: | 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 format, which 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 dates, which will work with other languages only when no weekday or month names are displayed, as 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') { |