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

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


wiki:plugin:data

плагин данных

Совместим с «Докувики»

  • 2024-02-06 "Kaos" неизвестно
  • 2023-04-04 "Jack Jackrum" неизвестно
  • 2022-07-31 "Igor" да
  • 2020-07-29 "Hogfather" да

plugin Добавляйте и запрашивайте структурированные данные в своей вики.

Последнее обновление:
2024-01-30
Предоставляет
Syntax, Helper, Action
Репозиторий
исходный код
Конфликтует с
fckg
Требует
sqlite

Похож на fields, json, pagemod, strata, struct

Теги: data, database, listing, sqlite, tables, tags

Этот плагин позволяет добавлять структурированные данные на любую страницу DokuWiki. Рассматривайте эти данные как дополнительные именованные атрибуты. Затем эти атрибуты можно запрашивать и агрегировать. Плагин похож на то, что было сделано для плагина репозитория, но его внутренняя структура существенно отличается.

:!: Возможно, вам стоит рассмотреть возможность использования идейного преемника этого плагина struct Plugin

Загрузка и установка

Найдите и установите плагин с помощью Менеджера расширений. Инструкции по ручной установке плагинов см. в разделе «Плагины».

Изменения

Обновление с версий, выпущенных до 06.02.2013.

Обязательно обновите плагин sqlite и следуйте инструкциям по обновлению версии sqlite.

Обновление с версий, выпущенных до 22.03.2010.

Начиная с 22 марта 2010 года, плагин данных использует вспомогательный плагин sqlite. Поэтому расположение и структура файлов базы данных изменились. Если вы хотите сохранить старую базу данных, перед обновлением плагина данных необходимо выполнить следующие действия:

  1. Установите sqlite плагин
  2. Переместите файл data/cache/dataplugin.sqlite в data/meta/data.sqlite
  3. Выполните следующие SQL-запросы к базе данных (например, используя страницу администрирования плагина sqlite):
CREATE TABLE opts (opt,val);
CREATE UNIQUE INDEX idx_opt ON opts(opt);
INSERT INTO opts VALUES ('dbversion', 1);
  1. Обновите плагин данных.

Если вы обновили плагин данных до выполнения этих шагов, data.sqlite был создан пустой файл, и вам необходимо скопировать его data/cache/dataplugin.sqlite поверх существующего data/meta/data.sqlite.

Синтаксис плагина

Этот плагин зависит от нескольких частей, каждая из которых имеет схожий синтаксис. Синтаксис определяет блок с различными парами ключ/значение, настраивающими поведение части плагина. Доступны следующие части:

Ввод данных (память)

Эта часть используется для добавления структурированных данных на страницу. Все введенные здесь данные привязаны к странице. Поэтому вы можете использовать ее только один раз на странице 12). Давайте начнем с примера:

---- dataentry projects ----
type            : web development
volume          : 1 Mrd    # how much do they pay?
employees       : Joe, Jane, Jim
description_wiki: **Important** project
customer_page   : customers:microsoft
deadline_dt     : 2009-08-17
server_pages    : servers:devel01, extern:microsoft
website_url     : http://www.microsoft.com
task_tags       : programming, coding, design, html
----

Как видите, блок определяется дефисами и словом dataentry. После ключевого слова можно добавить дополнительные слова dataentry. Они будут добавлены в качестве дополнительных CSS- классов в итоговый HTML- код и могут быть использованы для запроса %class% позже. Это можно использовать для стилизации отображения различных типов записей или для ограничения агрегации определенными типами страниц.

Вы можете использовать этот # символ для добавления комментариев к блоку. Они будут игнорироваться и не будут отображаться или сохраняться. Если вам нужно ввести # данные, экранируйте их обратной косой чертой ( \#). Если вам нужна обратная косая черта, экранируйте и её (\\).

Внутри блока вы видите названия столбцов и их значения. Для названий столбцов существует несколько правил:

  • Используйте любое имя на ваш выбор.
  • Если имя заканчивается этим s символом, вы можете добавить несколько значений, разделенных запятыми (как в строке с сотрудниками). Это удалит последний s символ из отображаемого имени столбца.
    • Суффикс s или «множественные значения» вступают в действие при использовании ~ фильтра, в отличие от *~ (см. ниже)13)
    • Если вы хотите избежать использования опции множественных значений и сохранить имя столбца без изменений, добавьте в конец имени символ подчеркивания (например: thickness_ : 1cm).
    • s Если вам нужен вариант с несколькими значениями, и вы хотите оставить название столбца без изменений, добавьте к нему второе значение …

например: name…
e.g.:
name : John → name: John
names: John, Jack → name: John, Jack
name_tag : John, Jack → name: John, Jack
name_tags: John, Jack → name: John, Jack
thickness : 1cm → thicknes: 1cm
thickness_: 1cm → thickness: 1cm
thicknesss: 1cm, 2inch → thickness: 1cm, 2inch

  • При использовании типа данных добавьте параметр sдля множественных значений в самом конце (например, в server_pages строке).
  • Для форматирования вывода к имени можно добавить специальные типы. Используйте нижнее подчеркивание для разделения идентификатора и типа. Доступные в настоящее время типы перечислены в таблице ниже.
    • Если тип не указан, он рассматривается как простая строка.
    • Новые типы можно создавать с помощью псевдонимов типов
тип Значение
dt Дата в формате ГГГГ-ММ-ДД, отформатированная как простой текст, но введенные данные проверяются на правильность формата.
page Эта запись рассматривается как имя страницы Вики и будет связана с ней в выходных данных. Она всегда считается абсолютным именем страницы, начинающимся в корневом пространстве имен. Относительные имена страниц невозможны.
title Как и в случае с обычной страницей, можно указать дополнительный заголовок, разделённый вертикальной чертой. Он всегда рассматривается как абсолютное имя страницы, начинающееся в корневом пространстве имён. Относительные имена страниц невозможны.
nspage Как и на странице, но имя столбца рассматривается как пространство имен для ссылки.
url значение будет рассматриваться как внешняя ссылка
tag Значения связаны со страницей, названной по имени столбца, и используют это значение в качестве фильтра управления для таблицы данных (изменение целевого объекта по псевдониму типа).
mail Проверяется, содержит ли значение действительный адрес электронной почты; в качестве имени, которое будет связано с указанным адресом электронной почты, используется дополнительный текст.
img<num> Предполагается, что входными данными является URL-адрес изображения или идентификатор локального медиафайла. Необязательный параметр <num> указывает желаемую ширину изображения в пикселях для изменения его размера (по умолчанию 40).
wiki Отобразить входные данные в виде вики-текста (используйте этот тип текста с осторожностью, так как он влияет на производительность).
pageid В поле ввода находится подпись для ссылки на страницу ввода данных.
hidden Введенные данные не будут отображаться ни в окне ввода данных, ни в редакторе ввода.

В значениях можно использовать два заполнителя, полезных для создания ссылок, зависящих от локализации.

Переменная для значения Значение
%lang% Код языка вашей вики по умолчанию. Например: en
%trans% Языковой код локализации текущей страницы.
Требуется плагин перевода Для ссылки на страницу de:test:page, он заменяется на
de. Используется язык по умолчанию. Пусто без плагина перевода.

Таблица данных (Вывод)

Для агрегирования структурированных данных, прикрепленных к различным страницам вашей вики, используется следующий синтаксис. Он отобразит настраиваемую таблицу с нужными вам данными. Таблицу можно сортировать и фильтровать. Также поддерживается постраничная навигация14). И, как и в случае с dataentry, вы можете добавить дополнительные слова после ключевого слова datatable. Они будут добавлены в виде дополнительных CSS- классов в итоговый HTML- код. Давайте снова начнем с примера:

---- datatable ----
cols    : %pageid%, employees, deadline_dt, website_url, volume
headers : Details, Assigned Employees, Deadline, Personal website, $$$
max     : 10
filter  : type=web development
sort    : ^volume
----

Приведенная выше конфигурация отобразит таблицу со всеми проектами веб-разработки, сотрудниками, назначенными на проект, сроками выполнения и объемом работ. Таблица будет отсортирована по объему и будет отображать максимум 10 проектов.

Как и в случае с вводом данных, значения в столбцах также можно форматировать, добавляя к именам столбцов псевдоним типа. Как и в случае со столбцом deadline_dt выше. Другой пример показывает website, что при указании URL-адреса записи в столбцах помечаются, например, _url для обеспечения возможности создания ссылок в выходных данных.

Ключевое слово перед двоеточием обозначает параметр конфигурации, а значение после него — фактическую настройку. Для повышения отказоустойчивости часто допускается использование нескольких имен параметров. Вот список всех доступных параметров:

Параметры Необходимый? Описание
cols
select
yes Это атрибуты, которые вы хотите отобразить. Это те же самые названия, которые вы использовали в разделе «Ввод данных».
head
header
headers
no Если указано иное, эти имена будут использоваться в заголовках таблиц вместо имен столбцов.
max
limit
no Сколько строк следует отобразить? Если строк достаточно, таблица станет доступной для просмотра. Если не указано, отображаются все соответствующие строки.
sort
order
no По какому столбцу следует сортировать таблицу в начале? Добавьте префикс «a», ^ чтобы изменить порядок сортировки на обратный.
filter
where
filterand
and
no Фильтрация по значению столбца. Вы можете указать это значение несколько раз, при одновременном применении нескольких фильтров будет использоваться логическая операция И.
filteror
or
no Аналогично фильтру, но несколько экземпляров будут объединены оператором ИЛИ.
dynfilters no Установите этот параметр 1 чтобы включить строку полей ввода для динамической фильтрации таблицы.
summarize no Установите значение, 1 чтобы вычислить сумму столбцов.
align no Список выравниваний столбцов. Выравнивания могут быть left(l), center© или right®
rownumbers no Установите параметр 1 для отображения номеров строк.
widths no Задает ширину столбцов, например 50px, 20em, -, 10%, «Пропустить столбец по тире -». (Примечание: если ячейка содержит длинную строку символов без пробелов, ширина соответствующего столбца не может быть меньше длины этой строки символов. Использование параметра «widths» для указания меньшей ширины столбца не даст никакого эффекта).

Для фильтрации возможно использование нескольких компараторов:

Компаратор Значение
= Точное совпадение
!= or <> Не совсем совпадает
< Меньше, чем
<= Меньше или равно
> Больше чем
>= Больше или равно
~ Сопоставление с использованием подстановочного знака. Используйте символ «a» * в качестве подстановочного знака. Например, Apple* для сопоставления Apple Pieс и Apple Computer; например dessert~ *Pie. Регистр нечувствителен.
*~ Wildcard match. Look for matches containing search term; e.g. dessert*~ Pi match Apple Pie
!~ Отрицательное совпадение с использованием подстановочного знака. Выделите все, что не соответствует выражению.
~~ Проверяет, содержится ли элемент в заданном списке, разделенном запятыми; например:dessert ~~ diner,dessert

Вы можете использовать специальные переменные в фильтре, чтобы он сопоставлялся с текущим авторизованным пользователем или текущей датой, например. filter: username=%user%

Переменная для значения фильтра Значение
%user% соответствие текущему авторизованному пользователю
%groups% сопоставить с группами текущего пользователя; использовать ~~ компаратор
%now% сравнить с текущей датой
%lang% Код языка вашей вики по умолчанию. Например: en
%trans% Языковой код локализации текущей страницы.
Требуется плагин translation. Для ссылки на страницу de:test:page, он заменяется на
de. Используется язык по умолчанию. Пусто без плагина перевода.

Существует несколько переменных, которые можно использовать в качестве имен полей, например filter : %pageid%~members:*:

Переменная для имени поля Значение
%pageid% Полное название страницы
%title% «Заголовок» страницы. Это первый заголовок страницы.
%class% Класс записи данных

Класс записи данных %lastmod%:

---- datatable ----
cols    : %pageid%, %lastmod%
headers : Details, Last Update
max     : 10
filter  : type=release notes
sort    : ^%lastmod%
----

Список данных (выходные данные)

Работает datalist аналогично описанному datatable выше и принимает те же параметры. Но вместо отображения таблицы показывается неупорядоченный список. Каждая строка результата представляет собой один элемент списка, все выбранные столбцы по умолчанию соединены пробелом. Если параметр sepbyheaders не задан, header он полностью игнорируется. Пагинация не используется.

Параметры Необходимый? Описание
sepbyheaders no Установите параметр, 1 чтобы в качестве разделителей между значениями использовались заголовки. В заголовках можно использовать дополнительные пробелы, заключенные в кавычки, например: " - "
---- datalist ----
cols    : %pageid%, volume
max     : 10
filter  : type=web development
sort    : ^volume
----

Похожие страницы (Вывод)

Этот режим позволяет отображать список страниц, похожих на текущую страницу, поскольку они имеют общие структурированные данные. Какие столбцы используются для сравнения по сходству, необходимо указать в параметрах cols. Можно задать дополнительные фильтры и параметры сортировки. Вот пример:

---- datarelated ----
cols  : task_tags, type
title : Similar projects
max   : 5
sort  : ^volume
----

Представленная конфигурация будет искать страницы, имеющие общие значения в столбцах task_tags и type. Отображается максимум 5 страниц, отсортированных по объему.

Для получения информации о доступных вариантах обратитесь к таблице данных.

В этом режиме кэширование страницы не отключается, поэтому список может быть не всегда актуальным.

Облако тегов (контрольное)

Этот синтаксис отобразит значения заданного имени данных в виде облака тегов. Каждое значение будет ссылаться на текущую страницу (если иное не указано в target параметрах). Страница также должна содержать таблицу данных — эта таблица будет отфильтрована для отображения всех записей, соответствующих выбранному тегу.

Пример:

---- datacloud ----
field: employees
min: 2
limit: 20
----

Приведенный выше код отобразит цепочку сотрудников, назначенных как минимум на два разных проекта. Отобразится максимум 20 самых загруженных сотрудников.

Вот возможные варианты облачных решений:

Параметры Необходимый? Описание
field
select
col
yes Какой атрибут используется для построения облака?
limit
max
no Максимальное количество отображаемых тегов. Если не указано, будут отображены все теги.
min no Минимальное количество меток, которое должен иметь тег. Если значение не указано, будут показаны все метки.
page
target
no Укажите страницу, содержащую управляемую таблицу данных. Если страница не указана, используется текущая страница.
summarize no Установите значение 1, чтобы отобразить сумму поля.

Кроме того, фильтры можно задавать, как описано в синтаксисе таблицы данных.

Настройка стиля

Позиционирование и стилизация полей ввода и вывода могут быть выполнены с помощью простого CSS . Все, что указано после ключевого слова синтаксиса, будет присвоено в качестве дополнительного имени класса окружающему div. Кроме того, ключи полей используются в качестве классов для элементов полей ввода.

Предположим, что используется следующее поле для ввода данных, как указано в начале страницы.

---- dataentry character24 ----
name            : Jack Bauer
agency_nspage   : CTU
status_tags     : alive, active, disowned, furtive
.... more info
----

Теперь вы можете стилизовать этот блок с помощью CSS в вашем <dokuwiki>/conf/userstyle.css15). Вот пример:

div .character24  { 
  /* Здесь размещается код для контейнерного блока, такой как положение, макет и границы */ 
  float :  right ; 
  width :  33% ; 
}
 
div .character24 dl > dt {  
  /* Это позволит вам стилизовать термины определения */ 
  font-variant :  small-caps ; 
}
 
div .character24 dl > dt + dd { 
  /* Это позволит вам стилизовать значения определения */ 
  font-family :  sans-serif ; 
}
 
div .character24 dl dd.name { 
  /* Это делает имя больше, чем остальное */ 
  font-size :  120% ; 
}

Псевдонимы типов

Псевдонимы типов — это пользовательские типы данных, определяемые базовым типом (одним из встроенных типов, например, `<type>` page или отсутствием типа) и, при необходимости, префиксом, постфиксом или набором допустимых значений, разделенных запятыми. Псевдонимы типов управляются на отдельной странице в меню администратора и хранятся в базе данных. Их можно использовать в записях данных, списках и таблицах, как и встроенные типы.

Псевдоним типа карты

Например, чтобы создать новый тип данных map который будет открывать Google Maps:

определить карту адресов interwiki:

map     http://maps.google.com/maps?q={NAME}

А в разделе Администрирование → Плагин данных: Псевдонимы полей (do=admin&page=data_aliases) определите:

Псевдоним типа Тип Префикс данных Постфикс данных Допустимые значения
map wiki [[map> ]]

который вы можете использовать сейчас следующим образом:

---- dataentry  ----
Address_map  : 51.103028,-1.780611
----

Вы даже можете ввести действительный адрес, например: Bahnhofsstraße 5, Regensburg, Deutschland

Измените целевой объект тега с помощью псевдонима типа тега.

В качестве имени целевой страницы для ссылок тегов по умолчанию используется имя столбца. Вы можете изменить его, указав псевдоним типа. В качестве префикса укажите URL страницы, на которой находится ваша таблица данных. Нажатие на ссылку тега отфильтрует таблицу по значению тега.

Псевдоним типа Тип Префикс данных Постфикс данных Допустимые значения
newtag tag namespace:pagewithdatatable

который вы можете использовать сейчас следующим образом:

---- dataentry  ----
Address_newtag  : cheese
----

Нажатие на этот cheese тег приведет к переходу по ссылке namespace:pagewithdatatable и фильтрации по ней cheese.

псевдоним типа iCal с помощью iCal-плагина

Если вы объедините все встречи, вы можете создать ссылку для их скачивания.

iCal-плагин

Псевдоним типа Тип Префикс данных Постфикс данных Допустимые значения
ical wiki {{ical> }}

псевдоним типа vCard с плагином vCard

Настройка плагина vCard аналогична настройке iCal.

Редактор пользовательских записей

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

Custom editor with config "edit_content_only" off let's you edit structure and values
Пользовательский редактор: редактирование структуры и значений.

Custom editor with config "edit_content_only" on let's you edit only values
Пользовательский редактор: редактирование только значений путем включения соответствующей опции в конфигурации.edit_content_only

Удобные поля для "редактирования только содержимого"

При включении этой опции конфигурации edit_content_only используются некоторые удобные поля:

  • Выпадающий список отображается заполненным значениями, указанными в Valid values столбце псевдонимов типов.
  • Выбор даты для полей типа dt
  • Функция автозаполнения предлагает варианты существующих страниц для псевдонимов типов на основе самого page типа ( page сам тип не работает).

Требование : Для работы средства выбора даты и подсказок страниц необходим плагин bureaucracy который обеспечивает необходимую JavaScript-инфраструктуру.

Подсказки страниц активируются с помощью псевдонима типа page. Второй псевдоним отображает только страницы в plugin: пространстве имен , что также показано на изображении.

Псевдоним типа Тип Префикс данных Постфикс данных Допустимые значения
pagesuggest page
pagesuggestplugin page plugin:

Custom entry editor: datepicker for _dt and selects for alias type with Valid values

Custom entry editor: pagesuggestions for type aliases of page type. Suggestions show page title and in brackets the page name.

Слева: пользовательский редактор с полем выбора данных и полями для одиночного и множественного выбора.
Справа: поле с подсказками страниц.

Плагин бюрократии и псевдонимы типов

Удобные поля данных, используемые в пользовательском редакторе записей, также доступны для полей в виде плагина «Бюрократия». К ним относятся: выбор допустимых значений, календарь и подсказки страниц. Допускаются и другие типы, но только в виде обычного текстового поля.

Несколько примеров определения полей формы в бюрократической форме с использованием полей плагина данных:

data_aliastextbox Tag _fixedtag 	
data_aliastextbox Multitags _fixedtags 

data_aliastextbox "Date of happening" _dt	
data_aliastextbox "Plugin Page" _pagesuggestplugin

В последней строке используется псевдоним типа из предыдущего раздела, первые две строки объединены с псевдонимом типа:

фиксированный тег ярлык Книга, тетрадь, читательская книга

Datepicker for dataplugin _dt field in a bureaucracy form Single and multiple select for dataplugin field using a type alias with Valid values in a bureacracy form

На левом изображении показан элемент выбора даты в бюрократической форме, а на правом — элемент выбора одной или нескольких дат; они созданы с использованием псевдонима типа, определяющего допустимые значения.

Поддержка перевода

Если вы используете плагин перевода, вам может потребоваться использовать одни и те же записи данных на разных языках. Плагин позволяет переводить названия полей — значения при этом переводиться не будут. Если вы хотите использовать только названия полей на английском языке, отображая их на своем языке, вы также можете следовать этим инструкциям.

Для создания переводов имен полей создайте файл в каталоге `/etc/fieldname/fieldname` conf/lang/<langcode>/data-plugin.php. Этот файл должен содержать PHP-массив $lang с именем `/etc/fieldname` в качестве ключа и переводом в качестве значения:

conf/lang/en/data-plugin.php
<?php
$lang['somekey']  = 'My name for the key';
$lang['otherkey'] = 'My name for the other key';

Названия полей следует указывать без указания типа. Поэтому это deadline не так deadline_dt.

После создания или изменения файла data-plugin.php, пожалуйста, обновите конфигурацию вики, чтобы обновить кэшstart?do=admin&page=config, в противном случае изменения не будут учтены.

Отсутствующие функции

  • Дополнительные параметры управления:
    • Список атрибутов (аналогично облаку тегов, но в виде простого списка)
    • поле поиска – см. плагин datasearchform
  • улучшенная документация, примеры
    • Пожалуйста, укажите, какие фрагменты требуют большего внимания или что вам непонятно. Спасибо.
  • Добавьте поддержку JavaScript для формы редактирования content_only в полнофункциональную форму.
  • Больше типов данных?
  • Ссылки в агрегированных данных и в самих записях не создают обратных ссылок.
  • поиск данных в определенном пространстве имен
  • Для проверок типа WHERE по полям даты требуется эквивалент SQL INTERVAL («WHERE field_dt < %now% + INTERVAL 6 MONTH» равно «field_dt before 6 months from now»).
  • сравнить с названием «этой страницы» (в таблице данных)
  • История изменений в таблице псевдонимов типов (изменения в таблице могут повлиять на страницы, но запись и отмена изменений недоступны).
  • Больше блоков ввода данных на одной странице. Причина: плагин Data разработан таким образом, что на каждой странице размещается отдельный блок ввода данных. ⇒ Рекомендуемая альтернатива: Strata Plugin, который эквивалентен плагину Data, но немного более функционален.

Примеры

Некоторые варианты использования:

Вопросы и ответы

Как обновить данные?

Данные, копируемые в базу данных SQLite, должны автоматически обновляться при каждом изменении страницы, содержащей поле ввода данных. Если вы удаляли или переименовывали страницы вне вики, база данных по-прежнему будет содержать данные о страницах, которые теперь не существуют. Их можно очистить с помощью Data Plugin: Clean up database соответствующего пункта в меню «Администрирование».

Однако могут быть некоторые ошибки, из-за которых это не всегда на 100% надежно. Обратитесь к разделу открытых ошибок и изменений, чтобы узнать, что может быть неисправно или что было недавно исправлено

При удалении всей базы данных все страницы ввода данных необходимо перерисовать для восстановления ее содержимого. Автоматического способа сделать это нет.

В случае, если страница была изменена извне или была обновлена ​​база данных, можно использовать несколько способов для ее обновления:

  • для пакетной загрузки страниц вики с помощью wget, программы для загрузки файлов из командной строки;
  • Чтобы установить плагин searchindex откройте новую SearchIndex Manager панель в меню «Администрирование» и нажмите Rebuild Index кнопку.

Разумеется, вы можете открыть файл базы данных непосредственно в командной строке SQLite и управлять им с помощью SQL-запросов.

В чём разница между плагином Strata и плагином Data?

Плагин Strata по своим функциональным возможностям является аналогом плагина Data. Однако он обладает более сложным синтаксисом запросов, упрощенной системой псевдонимов и дополнительными функциями, такими как построение графиков или вывод данных на основе предопределенного шаблона. Таким образом, для обработки более сложных данных плагин Strata предоставляет больше возможностей.

Как отфильтровать пустые поля/значения?

Предположим, некоторые записи содержат пустые поля, и вы хотите отобразить такие записи: как написать фильтр в запросе, чтобы вывести их?

например

---- dataentry projects ----
type            : web development
volume          : 1 Mrd    # how much do they pay?
employees       : Joe, Jane, Jim
description_wiki: **Important** project
customer_page   : 
----

и если запрос выглядит так:

---- datatable ----
cols    : %pageid%
headers : Details
filter  : customer_page=
----

В выходных данных указанная выше запись не отображается.

Решение состоит в том, чтобы изменить фильтр на значение, которое будет всегда отображаться.
---- datatable ----
cols    : %pageid%
headers : Details
filter  : %class% = projects
----
SFITCS 2016-10-15 04:58

Почему мои переменные/заполнители не работают при создании таблицы в шаблоне пространства имен?

DokuWiki вызывает функцию strftime _template.txt при создании новой страницы. Это заменяет некоторые комбинации %[az] (например, %title% станет [TAB]itle%). При использовании заполнителей _template.txt следует использовать двойные знаки процента (%%title%%). Функция strftime будет рассматривать их как обычные символы процента.

Другие вопросы

Если у вас остались вопросы, поищите на форуме, и если этот вопрос ещё не задавался, задайте его там. Пожалуйста, сообщайте об ошибках в системе отслеживания проблем Github.


Настройки

Важно! Это лишь уловки — нет гарантии, что они всегда будут работать, и они не сохранятся после обновлений.

Если он разобьется, вы сможете оставить себе обломки :-)

Настройте формат даты

ПРИМЕЧАНИЕ: /conf/dokuwiki.php Также необходимо изменить параметр конфигурации функции PHP strftime (это можно сделать через Администрирование → Конфигурация ).

$conf['dformat']     = '%d/%m/%Y %H:%M';

Чтобы изменить формат даты по умолчанию с yy-mm-dd на dd-mm-yy (например, для Австралии)

Измените это:

plugins/data/helper.php
    /** 
     * Заменяет заполнители в SQL 
     */ 
    function _replacePlaceholdersInSQL ( & $data )  { 
        global  $USERINFO ; 
        // разрешить имя текущего пользователя в фильтре: 
        $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 ( '%now%' , dformat ( null ,  '%Y-%m-%d' ) ,  $data [ 'sql' ] ) ; 
 
        // языковой фильтр 
        $data [ 'sql' ]  =  $this- > makeTranslationReplacement ( $data [ 'sql' ] ) ; 
    }

к этому:

plugins/data/helper.php
    /** 
     * Заменяет заполнители в SQL 
     */ 
    function _replacePlaceholdersInSQL ( & $data )  { 
        global  $USERINFO ; 
        // разрешить имя текущего пользователя в фильтре: 
        $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 ( '%now%' , dformat ( null ,  '%d-%m-%Y' ) ,  $data [ 'sql' ] ) ; 
 
        // языковой фильтр 
        $data [ 'sql' ]  =  $this- > makeTranslationReplacement ( $data [ 'sql' ] ) ; 
    }

и измените это:

plugins/data/helper.php
switch ( $type )  { 
            case  'dt' : 
                if ( preg_match ( '/^(\d\d\d\d)-(\d\d?)-(\d\d?)$/' ,  $value ,  $m ) )  { 
                    return  sprintf ( '%d-%02d-%02d' ,  $m [ 1 ] ,  $m [ 2 ] ,  $m [ 3 ] ) ; 
                }

к этому:

plugins/data/helper.php
switch ( $type )  { 
            case  'dt' : 
                if ( preg_match ( '/^(\d\d?)-(\d\d?)-(\d\d\d\d)$/' ,  $value ,  $m ) )  { 
                    return  sprintf ( '%02d-%02d-%d' ,  $m [ 1 ] ,  $m [ 2 ] ,  $m [ 3 ] ) ; 
                }

и измените это:

plugins/data/script.js
/** 
 * Инициализация средства выбора даты для всех полей даты 
 */ 
jQuery ( function  ( )  { 
    jQuery ( '.data_type_dt input' ) . datepicker ( { 
        dateFormat :  "yy-mm-dd" , 
        changeMonth :  true , 
        changeYear :  true 
    } ) ;

к этому:

plugins/data/script.js
/** 
 * Инициализация средства выбора даты для всех полей даты 
 */ 
jQuery ( function  ( )  { 
    jQuery ( '.data_type_dt input' ) . datepicker ( { 
        dateFormat :  "dd-mm-yy" , 
        changeMonth :  true , 
        changeYear :  true 
    } ) ;

SFITCS 2016-11-26 01:24

Сообщения об ошибках, запросы на добавление новых функций и исправления.

Пожалуйста, сообщайте об ошибках и предлагайте новые функции в системе отслеживания ошибок на GitHub. Патчи следует отправлять в формате унифицированного сравнения изменений (unified diff format) или в виде git-патчей для ветки devel. Или еще лучше: создайте форк репозитория на GitHub и отправьте запрос на слияние (merge request).

Дополнения и Файлы

12)
Любой дополнительный элемент dataentry на той же странице перезапишет любой предыдущий элемент ввода данных на этой странице, и поэтому — хотя на одной странице может отображаться множество блоков ввода данных — в базе данных SQLite будут храниться только значения последнего из них, и их можно будет получить в качестве выходных данных, например, с помощью datatable
13)
Подробности: s суффикс, например, «adam, eve», приводит к созданию списка , который можно запросить поэлементно ~ или целиком *~; без sсуффикса «adam, eve» будет храниться как строка , которую можно запросить только целиком *~. Это связано с тем, что в большинстве случаев sсуффикс является скорее вопросом семантической ясности, чем техническим требованием (для значений полей, которые люди понимают как множественные или списковые значения).
14)
Что это значит?
Только авторизованные участники могут оставлять комментарии.
wiki/plugin/data.txt · Последнее изменение: VladPolskiy

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