Выводим информацию о новости в файле (attachment) в DLE
Как мне сообщил один из посетителей сайта, в DataLife Engine нельзя использовать теги от новости в шаблоне файла attachment, для того чтобы вывести необходимую информацию о самой новости, к которой привязан тот или иной файл.
Немного подумав и еще раз посмотрев, как устроен движок, я нашел решение его проблемы.
1. Подключитесь к вашему сайту по FTP.
2. Откройте файл «show.full.php» в папке /engine/modules/. В нем найдите строку:
$news_id = $row['id'];
и сразу после нее вставьте:
$row_malcov_id = $row['id'];
$row_malcov_autor = $row['autor'];
$row_malcov_title = $row['title'];
$row_malcov_xfields = $row['xfields'];
3. Здесь же найдите строку:
$tpl->result['content'] = show_attach( $tpl->result['content'], $news_id );
и также после нее вставьте:
// © 2017 Artem Malcov | https://www.pandoge.com/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']);
Сохраняете изменения и отправляете файл обратно на сайт.
3. Чистите кэш сайта. Установка закончена.
Теперь в шаблоне вашего файла (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']);
и заполняете его своими данными, в таком случае вы сможете вывести несколько своих дополнительных полей.
Информация, которую можно вывести из новости в файле, приведена не вся, если чего-то вам не хватает – пишите об этом в комментариях и не забывайте поддерживать проект, если на его страницах вы почерпнули что-то новое и полезное для себя.