Вывод информации о новости в шаблоне файла attachment
Представляем вам такой хак вывод информации о новости в шаблоне файла attachment для DLE 11.x итак как мы знаем что в движке нельзя использовать все теги от новости в шаблоне файла templates/Ваш_шаблон/ attachment.tpl, и например чтобы вывести нужную нам информацию о самой новости к которой и привязан тот или иной файл. Я немного подумав как же устроен данный движок, и было так сказать найдено такое решение проблемы. Также смотрите у нас и другие хаки для dle и вы найдете для своего проекта нужное и интересное.
Установка:
1. Открыть engine/modules/show.full.php и найти:
$news_id = $row['id'];
Добавить ниже:
$row_malcov_id = $row['id'];
$row_malcov_autor = $row['autor'];
$row_malcov_title = $row['title'];
$row_malcov_xfields = $row['xfields'];
Найти:
$tpl->result['content'] = show_attach( $tpl->result['content'], $news_id );
Добавить ниже:
// Copyright (c) 2017 Artem Malcov | https://artem-malcov.ru/haki/vyvodim-informaciyu-o-novosti-v-fayle-attachment-v-dle
$tpl->result['content'] = str_replace ('{id_news}', $row_malcov_id, $tpl->result['content']);
$tpl->result['content'] = str_replace ('{autor_news}', $row_malcov_autor, $tpl->result['content']);
$tpl->result['content'] = str_replace ('{title_news}', $row_malcov_title, $tpl->result['content']);
$xfields_1 = explode("images", $row_malcov_xfields);
$xfields_1 = explode("||", $xfields_1[1]);
$tpl->result['content'] = str_replace ('{xfields_news_1}', substr($xfields_1[0], 1), $tpl->result['content']);
Все!
Теперь в шаблоне файла attachment.tpl стали доступны следующие теги для вывода информации:
{id_news} – ID новости.
{autor_news} – автор новости.
{title_news} – заголовок новости.
{xfields_news_1} – дополнительное поле.
Обратите внимание: код используемый в хаке для доп.полей, берет информацию только с одного конкретного поля images. В вашем же случае вы меняете название нужного вам поля на свое, а при необходимости дублируете блок:
$xfields_1 = explode("images", $row_malcov_xfields);
$xfields_1 = explode("||", $xfields_1[1]);
$tpl->result['content'] = str_replace ('{xfields_news_1}', substr($xfields_1[0], 1), $tpl->result['content']);
и заполняете его своими данными, в таком случае вы сможете вывести несколько своих дополнительных полей.
- Версия DLE: 11.x
- Кодировка: utf-8, win-1251
- Категория: Хаки
- Автор: Артем Мáлков
- Источник:
Войдите на сайт
Все собранные средства будут переданы автору этой статьи - DEN
Сумма перевода от 10.00 рублей