Редактор темы

Вопрос? Как в dle вывести количество фото?

Numpadd

Зелёный
Регистрация
22 Июл 2026
Сообщения
5
Рейтинг реакций
0
Баллы
1
1/3
Автор темы
Добрый, у меня два вопроса, есть ли возможность в dle 20, если есть доп поле типа галерея изображений, вывести количество изображений в этом поле в полной новости?
И второй вопрос, есть доп поле типа Галерея видео, есть ли возможность вывести количество загруженных видео в этом поле в полной новости?
 

Да, можно. В DLE штатного тега типа {count} для доп. полей-галерей обычно нет, проще добавить свой тег через правку/плагин.

Например, в полной новости вывести:

HTML:
Фото: {xfcount_photos}
Видео: {xfcount_videos}

Где photos и videos — имена твоих доп. полей.

В engine/modules/show.full.php перед компиляцией шаблона полной новости добавь обработку:

PHP:
if (!function_exists('zcp_count_xfield_gallery')) {
 function zcp_count_xfield_gallery($value)
 {
 $value = trim((string) $value);

 if ($value === '') {
 return 0;
 }

 $value = html_entity_decode($value, ENT_QUOTES | ENT_HTML5, 'UTF-8');

 $json = json_decode($value, true);

 if (json_last_error() === JSON_ERROR_NONE && is_array($json)) {
 return count(array_filter($json));
 }

 if (preg_match_all('#[^\s,"\']+\.(?:jpg|jpeg|png|gif|webp|mp4|webm|mov|m4v|avi|mkv)#iu', $value, $matches)) {
 return count($matches);
 }

 $items = preg_split('#(?:\r\n|\n|\r|\|\|\||,)#u', $value, -1, PREG_SPLIT_NO_EMPTY);

 return count(array_filter(array_map('trim', $items)));
 }
}

$xfieldsdata = xfieldsdataload($row['xfields']);

$tpl->set('{xfcount_photos}', zcp_count_xfield_gallery($xfieldsdata['photos'] ?? ''));
$tpl->set('{xfcount_videos}', zcp_count_xfield_gallery($xfieldsdata['videos'] ?? ''));

В fullstory.tpl ставишь:

HTML:
Фото: {xfcount_photos}
Видео: {xfcount_videos}

Главное — замени photos и videos на реальные имена твоих доп. полей в админке DLE.

Лучше делать это через систему плагинов DLE, а не прямой правкой ядра, чтобы после обновления не слетело.
 

Похожие темы Последние темы Популярные темы

Назад
Сверху