Data List - новое доп поле, с возможностью добавления новых строк
Модуль позволяет создавать для ваших публикаций (статей) дополнительные поля и хранить эту информацию в отдельной таблице базы данных.
Чтобы проиллюстрировать цель создания этого модуля, рассмотрим пример: у вас есть сайт о фильмах или сериалах. Для одного фильма вы добавляете несколько альтернативных ссылок для скачивания или просмотра. Кроме того, для каждой ссылки есть дополнительная информация: язык, источник и т. д. С помощью этого модуля вы можете добавить любое количество таких полей для статьи.
Почему не использовать стандартные дополнительные поля DLE? Потому что даже если вы введете данные построчно, вы не сможете отформатировать их для отображения так, как вам нужно, без дополнительной доработки системы.
Еще одно отличие от стандартных полей DLE заключается в том, что этот модуль работает только в шаблоне `fullstory.tpl`. Данные модуля хранятся в отдельной таблице базы данных с привязкой к ID статьи.
Установка
Загрузите ZIP-архив через панель управления дополнениями (Админ-панель -> Управление дополнениями).
Важное примечание: Архив, скачанный напрямую с GitHub, не совместим со структурой пакетов DLE. Вам необходимо:
- Распаковать скачанный ZIP.
- Убедиться, что XML-файл находится в корне папки.
- Заново создать ZIP-архив из содержимого этой папки и загрузить его.
Настройка
Модуль не имеет отдельной административной панели, так как основная настройка — это определение полей, что делается один раз и не требует сложного интерфейса. Настройки выполняются в файле `engine/data/datalist.conf.php`.
Вместе с модулем поставляются примеры полей:
'url' => [ "URL", "5" ],
'type' => [ "Type", "1", [ "" => "- Select -", "Watch" => "Watch", "Download" => "Download" ], «Watch»],
'host' => [ "Site", "2", [ "" => "- Select -", "STREMANGO" => "STREMANGO", "OPENLOAD" => "OPENLOAD", "VSHARE" => "VSHARE", "YOUWATCH" => "YOUWATCH" ]],
url — название поля (поле ввода текста)
*URL: Заголовок поля.
*5: Ширина поля (в условных единицах; если сумма ширины всех полей в строке превышает 11, они переносятся на новую строку).
type — название поля (выпадающий список)
*Type: Заголовок поля.
*1: Ширина поля.
*[]: Варианты выбора (массив PHP) в формате `"сохраняемое_значение» => «отображаемый_текст"`. Последний элемент массива («Watch») — значение, выбранное по умолчанию.
Пример конфига, с которым создан скриншот:
$data_list_conf = [
'url' => [ "URL", "5" ],
'type' => [ "Type", "1", [ "" => "- Select -", "Watch" => "Watch", "Download" => "Download" ], "Watch" ],
'lang' => [ "Language", "1", [ "" => "- Select -", "English" => "English", "Turkish" => "Turkish", "French" => "French" ], "French" ],
'quality' => [ "Type", "1", [ "" => "- Select -", "HDRip" => "HDRip", "DVDRip" => "DVDRip" ], "DVDRip" ],
'host' => [ "Site", "2", [ "" => "- Select -", "STREMANGO" => "STREMANGO", "OPENLOAD" => "OPENLOAD", "VSHARE" => "VSHARE", "YOUWATCH" => "YOUWATCH" ] ],
];
После установки и настройки модуля вы можете начать его использовать, добавив код в шаблон `fullstory.tpl`.
Шаблон строки данных:
[data-row]… [/data-row]
Внутри этого шаблона вы можете использовать значения созданных полей. В приведенном выше примере это будут:
* `{lang}`
* `{type}`
* `{quality}`
* `{host}`
* `{url}`
Пример использования в шаблоне:
<ul>
[data-row]
<li>
<b>{lang}</b> |
<b>{type}</b> |
<b>{quality}</b> |
<b>{host}</b> |
<button data-src="{url}" onclick="watch(this);return false">Смотреть</button>
</li>
[/data-row]
</ul>
В этом примере при клике на кнопку «Смотреть» ссылка из поля `{url}` будет открываться во встроенном фрейме (iframe). Необходимый дополнительный jаvascript-код для этого есть в документации по установке, которая находится в архиве, или код ниже:
<!-- Player - start -->
<iframe src="" id="player" width="720" height="360" scrolling="no" frameborder="0" style="background: #000; border: 4px solid #ccc; border-radius: 3px;"></iframe>
<script>
function watch(e) {
var player = document.getElementById('player');
player.src = decodeURIComponent( e.dataset.src );
}
</script>

Примечания
- Модуль доступен только при добавлении и редактировании новости в админ-панели.
- Полностью независим от стандартных дополнительных полей DLE.
- Данные хранятся в таблице `data_list`.
- Совместим с модулем Link Checker. Вы можете автоматически проверять ссылки в полях, названных `url`.
Автор: MWS
Источник: 🔗
Версия DLE: 13.0+ (оригинал с гитхаба) [ВНИМАНИЕ!!! Файл language\Russian\datalist.lng отсутствует, скопируйте с папки language\English]
Версия DLE: 19.0+