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

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


wiki:plugin:data

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
wiki:plugin:data [2026/01/18 13:51] – [Bureaucracy plugin and type aliases] VladPolskiywiki:plugin:data [2026/01/18 14:32] (текущий) – [Bugs, Feature Requests and Patches] VladPolskiy
Строка 405: Строка 405:
 На левом изображении показан элемент выбора даты в бюрократической форме, а на правом — элемент выбора одной или нескольких дат; они созданы с использованием псевдонима типа, определяющего допустимые значения. На левом изображении показан элемент выбора даты в бюрократической форме, а на правом — элемент выбора одной или нескольких дат; они созданы с использованием псевдонима типа, определяющего допустимые значения.
  
-===== Translation Support =====+===== Поддержка перевода =====
  
-If you use the [[translation]] pluginyou might want to use the same data entries in different languagesThe plugin allows for translated field names -- values will not be translatedIf you only want to use English field names while having them displayed in your languageyou can also follow these instructions.+Если вы используете плагин [[wiki:plugin:translation|перевода]], вам может потребоваться использовать одни и те же записи данных на разных языкахПлагин позволяет переводить названия полей — значения при этом переводиться не будутЕсли вы хотите использовать только названия полей на английском языке, отображая их на своем языкевы также можете следовать этим инструкциям.
  
-To create fieldname translations, create a file in ''conf/lang/<langcode>/data-plugin.php''The file needs to contain a PHP array named ''$lang'' with the fieldname in the array key and the translation in the value:+Для создания переводов имен полей создайте файл в каталоге `/etc/fieldname/fieldname''conf/lang/<langcode>/data-plugin.php''Этот файл должен содержать PHP-массив ''$lang'' с именем `/etc/fieldname` в качестве ключа и переводом в качестве значения:
  
 <code php conf/lang/en/data-plugin.php> <code php conf/lang/en/data-plugin.php>
Строка 417: Строка 417:
 </code> </code>
  
-Fieldnames are to be given without their typeSo it'''deadline'' not ''deadline_dt''.+Названия полей следует указывать без указания типаПоэтому это ''deadline'' не так ''deadline_dt''.
  
-After creating or modifiying data-plugin.php fileplease update wiki configuration to refresh cache ''%%start?do=admin&page=config%%'', otherwise modifications are not taken into account.+После создания или изменения файла data-plugin.php, пожалуйста, обновите конфигурацию вики, чтобы обновить кэш''%%start?do=admin&page=config%%'', в противном случае изменения не будут учтены.
  
-===== Missing Features =====+===== Отсутствующие функции =====
  
-  * more control options+  * Дополнительные параметры управления
-    * attribute list (similar to tag cloud but as a simple list+    * Список атрибутов (аналогично облаку тегов, но в виде простого списка
-    * search field -- see [[plugin:datasearchform]] plugin +    * поле поиска – см. плагин [[wiki:plugin:datasearchform]] 
-  * **better documentationexamples** +  * **улучшенная документацияпримеры** 
-    * Please provide suggestions for which pieces need more attention or where you do not understand stuffThanks+    * Пожалуйста, укажите, какие фрагменты требуют большего внимания или что вам непонятноСпасибо
-  * Add JavaScript support for the content_only edit form to the full-blown form as well +  * Добавьте поддержку JavaScript для формы редактирования content_only в полнофункциональную форму. 
-  * more data types+  * Больше типов данных
-  * links in aggregations and data entries don't generate backlinks +  * Ссылки в агрегированных данных и в самих записях не создают обратных ссылок. 
-  * search data in a specific namespace +  * поиск данных в определенном пространстве имен 
-  * WHERE checks against date fields need SQL INTERVAL equivalent ("WHERE field_dt < %now% + INTERVAL 6 MONTH" equals to "field_dt before 6 months from now"+  * Для проверок типа WHERE по полям даты требуется эквивалент SQL INTERVAL («WHERE field_dt < %now% + INTERVAL 6 MONTH» равно «field_dt before 6 months from now»). 
-  * compare against "this page" name (in datatable+  * сравнить с названием «этой страницы» (в таблице данных
-  * history for the type alias table (changes in the table can affect the pagesbut no record and no revert is available). +  * История изменений в таблице псевдонимов типов (изменения в таблице могут повлиять на страницыно запись и отмена изменений недоступны). 
-  * More data-entry blocks at one pageReasonthe Data Plugin is designed as data-entry block per page=> Recommended alternative: [[plugin:strata|Strata Plugin]], which is equivalent to Data pluginbut bit more sophisticated.+  * Больше блоков ввода данных на одной страницеПричинаплагин Data разработан таким образом, что на каждой странице размещается отдельный блок ввода данных⇒ Рекомендуемая альтернатива: [[wiki:plugin:strata|Strata Plugin]], который эквивалентен плагину Data, но немного более функционален.
  
-===== Examples =====+===== Примеры =====
  
-Some use cases:+Некоторые варианты использования:
  
-  * This plugin may be seen in action on this wiki in the [[:dokuinstall|DokuWiki Installations]] namespace.  +  * С работой этого плагина можно ознакомиться на этой вики в пространстве имен [[:wiki:dokuinstall|DokuWiki Installations]].  
-    * Look for the ''datatable'' in the source of [[:dokuinstall|DokuWiki Installations]] +    * Найдите это ''datatable'' в исходном коде [[:wiki:dokuinstall|DokuWiki Installations]] 
-    * and for a ''dataentry'' in some of the [[dokuinstall:southeastern|individual installation pages]]. +    * а также ''dataentry'' на некоторых [[:wiki:dokuinstall:southeastern|страницах, посвященных установке]]. 
-  * Very interesting and organized wiki setup: [[http://www.ickewiki.de/ickewiki|ICKEwiki]] by [[http://www.cosmocode.de/en/wiki/ickewiki|Cosmocode]] integrates the Data Plugin with some other plugins such as [[Bureaucracy]] to a complete enterprise wiki toolFollow links to the (GermanDemowhich let you access the wiki as employee.  +  * Очень интересная и хорошо организованная вики-система: [[http://www.ickewiki.de/ickewiki|ICKEwiki]] от [[http://www.cosmocode.de/en/wiki/ickewiki|Cosmocode]]  интегрирует плагин данных с другими плагинами, такими как [[:wiki:plugin:Bureaucracy]], создавая полноценный корпоративный вики-инструментПерейдите по ссылкам на демо-версию (на немецком языке), которая позволяет получить доступ к вики как сотрудник.  
-  * [[plugin:data:list_of_employees|DokuWiki usecaselist of employees]] -- How to use Data Plugin with [[Bureaucracy]] Plugin and [[Wrap]] Plugin. A manual by [[user>lolmaus]].+  * [[:wiki:plugin:data:list_of_employees|Пример использования DokuWiki: список сотрудников]] – Как использовать плагин Data с плагинами [[:wiki:plugin:Bureaucracy]] и [[:wiki:plugin:Wrap]] Руководство от [[user>lolmaus]].
  
-===== Question and Answers =====+===== Вопросы и ответы =====
  
-==== How to refresh data? ====+==== Как обновить данные? ====
  
-The data that is copied to the SQLite database //should// be refreshed automatically whenever the page containing the dataentry box is changedIf you deleted or renamed pages outside the wikithe database will still contain data about now non-existing pagesThese can be cleaned using the ''Data Plugin: Clean up database'' entry in the Admin menu.+Данные, копируемые в базу данных SQLite, должны автоматически обновляться при каждом изменении страницы, содержащей поле ввода данныхЕсли вы удаляли или переименовывали страницы вне викибаза данных по-прежнему будет содержать данные о страницах, которые теперь не существуютИх можно очистить с помощью ''Data Plugin: Clean up'' ''database'' соответствующего пункта в меню «Администрирование».
  
-However there might be some bugs making this not always 100% reliableRefer to the [[#open bugs]] section and [[#changes]] to see what might be broken or what was recently fixed.+Однако могут быть некоторые ошибки, из-за которых это не всегда на 100% надежноОбратитесь к разделу  [[#открытых ошибок]] и [[#изменений]], чтобы узнать, что может быть неисправно или что было недавно исправлено
  
-When you delete the whole database, all entry pages have to be re-rendered to repopulate the databaseThere is no automatic way to do so+При удалении всей базы данных все страницы ввода данных необходимо перерисовать для восстановления ее содержимогоАвтоматического способа сделать это нет.
  
-In case page were externally modifiedor fresh databasefew tricks to refresh the database are+В случаеесли страница была изменена извне или была обновлена ​​база данныхможно использовать несколько способов для ее обновления
-  * to download the wiki pages, in batch, using wget, a command-line file downloader+  * для пакетной загрузки страниц вики с помощью wget, программы для загрузки файлов из командной строки
-  * to install the [[plugin:searchindex]] plugin, launch the newly added ''SearchIndex Manager'' panel in Admin menu and click the ''Rebuild Index'' button.+  * Чтобы установить плагин [[wiki:plugin:searchindex]] откройте новую ''SearchIndex Manager'' панель в меню "Администрирование" и нажмите ''Rebuild Index'' кнопку. 
 +Разумеется, вы можете открыть файл базы данных непосредственно в командной строке SQLite и управлять им с помощью SQL-запросов.
  
-You can of course open the database file directly in the SQLite command line client and manipulate it through SQL queries.+==== В чём разница между плагином Strata и плагином Data? ====
  
-==== What is the difference between Strata plugin and Data plugin? ====+Плагин [[wiki:plugin:strata|Strata]] по своим функциональным возможностям является аналогом плагина Data. Однако он обладает более сложным синтаксисом запросов, упрощенной системой псевдонимов и дополнительными функциями, такими как построение графиков или вывод данных на основе предопределенного шаблона. Таким образом, для обработки более сложных данных плагин Strata предоставляет больше возможностей.
  
-The [[plugin:strata|Strata Plugin]] is in the big lines equivalent to Data plugin. However, it has more sophisticated query syntax, less and simpler 'aliastypes' system and additional features like graph or output based at an predefined template. So for handling of more complicated data the Strata Plugin has more opportunities.+==== Как отфильтровать пустые поля/значения? ====
  
-==== How do you filter empty fields/values====+Предположим, некоторые записи содержат пустые поля, и вы хотите отобразить такие записи: как написать фильтр в запросе, чтобы вывести их?
  
-Suppose some entries contain empty fields and you want to display such entries: how do you write the filter in the query to output these? +например
- +
-e.g.+
  
 <code> <code>
Строка 483: Строка 482:
 </code> </code>
  
-and if the query is:+и если запрос выглядит так:
 <code> <code>
 ---- datatable ---- ---- datatable ----
Строка 491: Строка 490:
 ---- ----
 </code> </code>
-the output does not show the above record+В выходных данных указанная выше запись не отображается.
  
-^The solution is to change the filter to a value that will always be populated. ^+^Решение состоит в том, чтобы изменить фильтр на значение, которое будет всегда отображаться. ^
 |<code>---- datatable ---- |<code>---- datatable ----
 cols    : %pageid% cols    : %pageid%
Строка 501: Строка 500:
 |  --- [[user>SFITCS|SFITCS]] //2016-10-15 04:58//| |  --- [[user>SFITCS|SFITCS]] //2016-10-15 04:58//|
  
-==== Why don't my variables/placeholders work when I create a table in a namespace template? ====+==== Почему мои переменные/заполнители не работают при создании таблицы в шаблоне пространства имен? ====
  
-DokuWiki calls [[phpfn>strftime]] on ''_template.txt'' when creating a new pageThis replaces some combinations of %[a-z] (for example, %title% will become [TAB]itle%). When using placeholders in ''_template.txt'' you should use double percent signs (<nowiki>%%title%%</nowiki>). Strftime will treat those as literal percent characters.+DokuWiki вызывает функцию [[phpfn>strftime]] ''_template.txt'' при создании новой страницыЭто заменяет некоторые комбинации %[az] (например, %title% станет [TAB]itle%). При использовании заполнителей ''_template.txt'' следует использовать двойные знаки процента (<nowiki>%%title%%</nowiki>). Функция strftime будет рассматривать их как обычные символы процента.
  
-==== Other Questions ====+==== Другие вопросы ====
  
-If you still have questionssearch the forum and if it hasn't been asked before ask your question therePlease leave bug reports on Github's issue tracker.+Если у вас остались вопросыпоищите на форуме, и если этот вопрос ещё не задавался, задайте его тамПожалуйста, сообщайте об ошибках в системе отслеживания проблем Github.
  
 ---- ----
  
-===== Customisations =====+===== Настройки =====
  
-**Important!** These are //hacks// -- there is no guarantee they'll always workand they will **not** survive updates+**Важно!** Это лишь //уловки// — нет гарантиичто они всегда будут работать, и они не сохранятся после обновлений.
  
-If it breaks you get to keep the pieces. :-)+Если он разобьется, вы сможете оставить себе обломки :-)
  
-==== Customise the Date Format ====+==== Настройте формат даты ====
  
-**NOTE:** The configuration setting for the PHP strftime function in ''/conf/dokuwiki.php'' also need to be changed (can also be changed via **Admin->Configuration**) <code>$conf['dformat'    = '%d/%m/%Y %H:%M';</code>+**ПРИМЕЧАНИЕ:** ''/conf/dokuwiki.php'' Также необходимо изменить параметр конфигурации функции PHP strftime (это можно сделать через Администрирование → Конфигурация ).  
 +<code>$conf['dformat'    = '%d/%m/%Y %H:%M';</code>
  
-To change the default date format from ''yy-mm-dd'' to ''dd-mm-yy'' (e.g. for Australia)+Чтобы изменить формат даты по умолчанию с ''yy-mm-dd'' на ''dd-mm-yy'' (например, для Австралии)
  
-Change this:+Измените это:
 <code php plugins/data/helper.php> <code php plugins/data/helper.php>
-    /** +    /**  
-     Replace placeholders in sql +     Заменяет заполнители в SQL  
-     */ +     */  
-    function _replacePlaceholdersInSQL(&$data) { +    function _replacePlaceholdersInSQL ( & $data )  {  
-        global $USERINFO; +        global  $USERINFO ;  
-        // allow current user name in filter+        // разрешить имя текущего пользователя в фильтре:  
-        $data['sql'] = str_replace('%user%', $_SERVER['REMOTE_USER'], $data['sql']); +        $data [ 'sql'  str_replace ( '%user%' $_SERVER [ 'REMOTE_USER' ] ,  $data [ 'sql' ] ) ;  
-        $data['sql'] = str_replace('%groups%', implode("','", (array) $USERINFO['grps']), $data['sql']$ +        $data [ 'sql'  str_replace ( '%groups%' implode ( "','" ( array )  $USERINFO [ 'grps' ] ) ,  $data [ 'sql' ] $ 
-        // allow current date in filter+         // разрешить текущую дату в фильтре:  
-        $data['sql'] = str_replace('%now%', dformat(null, '%Y-%m-%d'), $data['sql']); +        $data [ 'sql'  str_replace ( '%now%' , dformat ( null ,  '%Y-%m-%d' ) ,  $data [ 'sql' ] ) ;  
- +  
-        // language filter +        // языковой фильтр  
-        $data['sql'] = $this->makeTranslationReplacement($data['sql']);+        $data [ 'sql'  $this- > makeTranslationReplacement ( $data [ 'sql' ] ) ; 
     }     }
 </code> </code>
  
-to this:+к этому:
 <code php plugins/data/helper.php> <code php plugins/data/helper.php>
-    /** +    /**  
-     Replace placeholders in sql +     Заменяет заполнители в SQL  
-     */ +     */  
-    function _replacePlaceholdersInSQL(&$data) { +    function _replacePlaceholdersInSQL ( & $data )  {  
-        global $USERINFO; +        global  $USERINFO ;  
-        // allow current user name in filter+        // разрешить имя текущего пользователя в фильтре:  
-        $data['sql'] = str_replace('%user%', $_SERVER['REMOTE_USER'], $data['sql']); +        $data [ 'sql'  str_replace ( '%user%' $_SERVER [ 'REMOTE_USER' ] ,  $data [ 'sql' ] ) ;  
-        $data['sql'] = str_replace('%groups%', implode("','", (array) $USERINFO['grps']), $data['sql']$ +        $data [ 'sql'  str_replace ( '%groups%' implode ( "','" ( array )  $USERINFO [ 'grps' ] ) ,  $data [ 'sql' ] $ 
-        // allow current date in filter+         // разрешить текущую дату в фильтре:  
-        $data['sql'] = str_replace('%now%', dformat(null, '%d-%m-%Y'), $data['sql']); +        $data [ 'sql'  str_replace ( '%now%' , dformat ( null ,  '%d-%m-%Y' ) ,  $data [ 'sql' ] ) ;  
- +  
-        // language filter +        // языковой фильтр  
-        $data['sql'] = $this->makeTranslationReplacement($data['sql']);+        $data [ 'sql'  $this- > makeTranslationReplacement ( $data [ 'sql' ] ) ; 
     }     }
 </code> </code>
  
-and change this:+и измените это:
 <code php plugins/data/helper.php> <code php plugins/data/helper.php>
-switch($type) { +switch ( $type )  {  
-            case 'dt': +            case  'dt' :  
-                if(preg_match('/^(\d\d\d\d)-(\d\d?)-(\d\d?)$/', $value, $m)) { +                if ( preg_match ( '/^(\d\d\d\d)-(\d\d?)-(\d\d?)$/' $value ,  $m ) )  {  
-                    return sprintf('%d-%02d-%02d', $m[1], $m[2], $m[3]);+                    return  sprintf ( '%d-%02d-%02d' $m [ 1 ] ,  $m [ 2 ] ,  $m [ 3 ] ) ; 
                 }                 }
 </code> </code>
  
-to this:+к этому:
 <code php plugins/data/helper.php> <code php plugins/data/helper.php>
-switch($type) { +switch ( $type )  {  
-            case 'dt': +            case  'dt' :  
-                if(preg_match('/^(\d\d?)-(\d\d?)-(\d\d\d\d)$/', $value, $m)) { +                if ( preg_match ( '/^(\d\d?)-(\d\d?)-(\d\d\d\d)$/' $value ,  $m ) )  {  
-                    return sprintf('%02d-%02d-%d', $m[1], $m[2], $m[3]);+                    return  sprintf ( '%02d-%02d-%d' $m [ 1 ] ,  $m [ 2 ] ,  $m [ 3 ] ) ; 
                 }                 }
 </code> </code>
  
-and change this:+и измените это:
 <code javascript plugins/data/script.js> <code javascript plugins/data/script.js>
-/** +/**  
- Init datepicker for all date fields + Инициализация средства выбора даты для всех полей даты  
- */ + */  
-jQuery(function () { +jQuery ( function  ( )  {  
-    jQuery('.data_type_dt input').datepicker({ +    jQuery ( '.data_type_dt input' ) . datepicker ( {  
-        dateFormat: "yy-mm-dd", +        dateFormat :  "yy-mm-dd" ,  
-        changeMonth: true, +        changeMonth :  true ,  
-        changeYear: true +        changeYear :  true  
-    });+    } ) ;
 </code> </code>
  
-to this:+к этому:
 <code javascript plugins/data/script.js> <code javascript plugins/data/script.js>
-/** +/**  
- Init datepicker for all date fields + Инициализация средства выбора даты для всех полей даты  
- */ + */  
-jQuery(function () { +jQuery ( function  ( )  {  
-    jQuery('.data_type_dt input').datepicker({ +    jQuery ( '.data_type_dt input' ) . datepicker ( {  
-        dateFormat: "dd-mm-yy", +        dateFormat :  "dd-mm-yy" ,  
-        changeMonth: true, +        changeMonth :  true ,  
-        changeYear: true +        changeYear :  true  
-    });+    } ) ;
 </code>  --- [[user>SFITCS]] //2016-11-26 01:24// </code>  --- [[user>SFITCS]] //2016-11-26 01:24//
  
-===== BugsFeature Requests and Patches =====+===== Сообщения об ошибкахзапросы на добавление новых функций и исправления. ===== 
 + 
 +Пожалуйста, сообщайте об ошибках и предлагайте новые функции в [[https://github.com/splitbrain/dokuwiki-plugin-data/issues|системе отслеживания ошибок на GitHub]]. Патчи следует отправлять в формате унифицированного сравнения изменений (unified diff format) или в виде git-патчей для ветки devel. Или еще лучше: создайте форк репозитория на GitHub и отправьте запрос на слияние (merge request). 
 + 
 +===== Дополнения и Файлы===== 
 +  * [[https://www.dokuwiki.org/plugin:data|Ссылка на оригинальную статью]] 
 +  * {{ :wiki:plugin:splitbrain-dokuwiki-plugin-data-2024-01-30-2-gcecb410.zip |Скачать plugin data}}
  
-Please submit bugs and feature requests in the [[https://github.com/splitbrain/dokuwiki-plugin-data/issues|issue tracker on GitHub]]. Patches should be sent unified diff format or as git patches against the devel branch. Or even better: fork the repository at github and send a merge request. 
  
wiki/plugin/data.1768733487.txt.gz · Последнее изменение: VladPolskiy

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki