Инструменты пользователя

Инструменты сайта


wiki:devel:plugin_development_link

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
wiki:devel:plugin_development_link [2025/01/10 00:40] – [Перевод плагина на разные языки] vladpolskiywiki:devel:plugin_development_link [2025/02/21 06:53] (текущий) – [Примеры использования] vladpolskiy
Строка 58: Строка 58:
 Поскольку пользовательские и плагинные скрипты загружаться при всех запросах, а панель инструментов инициализируется только при редактировании, нам нужно сначала убедиться, что массив панелей инструментов существует. Проверим это, window.toolbar определен ли он. Если определен, вы можете добавить свою кнопку в конец массива. Поскольку пользовательские и плагинные скрипты загружаться при всех запросах, а панель инструментов инициализируется только при редактировании, нам нужно сначала убедиться, что массив панелей инструментов существует. Проверим это, window.toolbar определен ли он. Если определен, вы можете добавить свою кнопку в конец массива.
 <code js script.js> <code js script.js>
 +/* JavaScript function to create mylink toolbar in Dokuwiki */
 +/* see http://www.dokuwiki.org/plugin:mylink for more info */
 +
 +/* Путь к папке с иконками для кнопок панели */
 +mylink_icobase = "../../plugins/mylink/images/";
 +
 +if(window.toolbar != undefined) {       
 +  toolbar[toolbar.length] = {           
 +    "type":"picker",                    
 +    "title":"My links",                 
 +    "icon":mylink_icobase+"toolbar_icon.png",  
 +    "list":[{ 
 +      "type":"format", 
 +      "title":"Link to the original article", 
 +      "icon":mylink_icobase+"blog.png",  
 +      "open":"[[",
 +   "sample":"http://example.com|Link to the original article",
 +      "close":"]]"
 +    }, {
 +      "type":"format", 
 +      "title":"See also",   
 +      "icon":mylink_icobase+"magnifier-medium-left.png", 
 +      "open":"See also: [[",   
 +   "sample":"http://example.com|",
 +   "close":"]]"         
 +    }
 + ]
 +  };
 +}
 +</code>
 +<details>
 +<summary>«Подробности и пояснения»</summary>
 +<code css script.js>
 /* JavaScript function to create mylink toolbar in Dokuwiki */ /* JavaScript function to create mylink toolbar in Dokuwiki */
 /* see http://www.dokuwiki.org/plugin:mylink for more info */ /* see http://www.dokuwiki.org/plugin:mylink for more info */
Строка 88: Строка 121:
 } }
 </code> </code>
-в данном случае у нас  +</details> 
-<code> + 
-      "open":"See also: [[",   //открывающий тег вики-разметки для вставки+  
 +<code css> 
 +в данном случае наш код 
 +          "open":"See also: [[",   //открывающий тег вики-разметки для вставки
    "sample":"http://example.com|",    "sample":"http://example.com|",
-   "close":"]]"         //закрывающий тег вики-разметки для вставки+   "close":"]]"             //закрывающий тег вики-разметки для вставки
 представляют собою разрезанный код для вывода: представляют собою разрезанный код для вывода:
 See also: [[   http://example.com|    ]] See also: [[   http://example.com|    ]]
Строка 118: Строка 154:
  
 =====Перевод плагина на разные языки===== =====Перевод плагина на разные языки=====
 +Заходим в папку нашего проекта и создадим внутри папку lang
 +{{:wiki:devel:devev_plugin_mylink_25.jpg?|}}
 +Внутри создадим папки с необходимыми нам языковыми пакетами (в нашем примере это папки: en - англиский и ru - русский)).
 +{{:wiki:devel:devev_plugin_mylink_26.jpg?|}}
 +В каждой из папок создадим файл перевода lang.php
 +{{:wiki:devel:devev_plugin_mylink_27.jpg?|}}
 +Примерное содержание файлов lang.php для русского и английского переводов:
 +<code html lang.php>
 +<?php
 +/**
 + * English language file
 + */
  
 +$lang['js']['mylink_picker' = 'My links';
 +
 +$lang['js']['tb_see_also'     = 'See also';
 +$lang['js']['tb_link_to_the_original'      = 'Link to the original article';
 +</code>
 +<code php lang.php>
 +<?php
 +/**
 + * Russian language file
 + */
 +
 +$lang['js']['mylink_picker' = 'Мои ссылки';
 +
 +$lang['js']['tb_see_also'     = 'См. также';
 +$lang['js']['tb_link_to_the_original'      = 'Ссылка на оригинальную статью';
 +</code>
 +{{tablelayout?rowsHeaderSource=Auto}}
 +^ Атрибут                                      ^ Значение                           ^
 +| $lang['js']['mylink_picker' = 'My links';  | **mylink_picker** - имя вехней кнопки, **My links** - название (при наведении мыши) на английском и  **Мои ссылки** - название на русском языке. |
 +|$lang['js']['tb_see_also'     = 'See also'; |тоже самое для 1й кнопки в раскравающемся списке|
 +|$lang['js']['tb_link_to_the_original'      = 'Link to the original article'; |тоже самое для 2й кнопки в раскравающемся списке|
 +Вносим правки в наш файл script.js
 +<code js script.js>
 +/* JavaScript function to create mylink toolbar in Dokuwiki */
 +/* see http://www.dokuwiki.org/plugin:mylink for more info */
 +
 +mylink_icobase = "../../plugins/mylink/images/";
 +
 +if(window.toolbar != undefined) {
 +  toolbar[toolbar.length] = {
 +    "type":"picker",
 +    "title":LANG['plugins']['mylink']['mylink_picker'],
 +    "icon":mylink_icobase+"toolbar_icon.png",
 +    "list":[{
 +      "type":"format",
 +      "title":LANG['plugins']['mylink']['tb_link_to_the_original'],
 +      "icon":mylink_icobase+"blog.png",
 +      "open":"[[http://example.com|",
 +   "sample":LANG['plugins']['mylink']['tb_link_to_the_original'],
 +      "close":"]]"
 +    }, {
 +      "type":"format",
 +      "title":LANG['plugins']['mylink']['tb_see_also'],
 +      "icon":mylink_icobase+"magnifier-medium-left.png",
 +      "open":LANG['plugins']['mylink']['tb_see_also'],
 +   "sample":":[[http://example.com|",
 +   "close":"]]"
 +    },
 + ]
 +  };
 +}
 +</code>
 +Переведем Dokuwiki в английский язык и проверим работу нашего плагина при английской локализации:
 +{{:wiki:devel:devev_plugin_mylink_12.jpg?|}}
 +И то же самое при установленном русском языке в настройках Dokuwiki
 +{{:wiki:devel:devev_plugin_mylink_14.jpg?|}}
 +Работа кода кнопки См. также и вывод в редакторе текста на русском языке
 +{{:wiki:devel:devev_plugin_mylink_16.jpg?|}}
 +Пример вывода на страницу
 +{{:wiki:devel:devev_plugin_mylink_17.jpg?|}}
 +Примеры работы нашего плагина и вывода наших ссылок на этой странице при английской и русской локализациях:
 +  * [[http://example.com|Link to the original article]]
 +  * See also: [[http://example.com|]]
 +  * [[http://example.com|Ссылка на оригинальную статью]]
 +  * См. также:[[http://example.com|]] 
 +=====Примеры использования=====
 +Как мы уже знает, переменные
 +    * open - открывающий тег вики-разметки для вставки
 +    * sample- код php
 +    * close - закрывающий тег вики-разметки для вставки 
 +Соответственно и вставлять мы можем любые шаблоны, например:
 +{{:wiki:devel:plugin_link_exsample_1.png?|}}
 +[[http://example.com|Ссылка на оригинальную статью]]
 +<code php index.php>Вставить код PHP</code>
 +<code css style.css>Вставить код CSS</code>
 +<code js script.js>Вставить код JS</code>
  
 =====Дополнения и Файлы===== =====Дополнения и Файлы=====
-{{ :wiki:devel:mylink.zip |Архив проекта mylink}}+  * {{ :wiki:devel:mylink.zip |Архив проекта mylink}} 
 +  * {{ :wiki:devel:mylink1.zip |Архив проекта mylink (en/ru)}} 
 +  * {{ :wiki:devel:mylink-master.zip |mylink-master.zip}}
wiki/devel/plugin_development_link.1736458851.txt.gz · Последнее изменение: 2025/01/10 00:40 — vladpolskiy