Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как поменять имя файлов выводимых через Attachment ?

Как поменять имя файлов выводимых через Attachment ?


     02.11.2015    Общие вопросы, Общие вопросы по PHP    2351

вопрос
Здравствуйте. Как сделать чтобы вместо angrybirds.apk бралось название с тайтла новости?

Ответил: Sander


Вариант 1
Открыть файл ./engine/modules/functions.php
Найти строку:
$db->query( "SELECT id, date, name, onserver, dcount FROM " . PREFIX . "_files WHERE $where" );

Заменить на
$db->query( "SELECT f.id, f.date, f.onserver, f.dcount, p.title as name FROM " . PREFIX . "_files f LEFT JOIN " . PREFIX . "_post p ON p.id=f.news_id WHERE $where" );


Удалить или закомментировать строку:
$tpl->result['attachment'] = str_replace( $row['name'], "\\1", $tpl->result['attachment'] );


В шаблоне attachment.tpl тег {name} теперь будет выводить заголовок новости.
Примечание. Если в заголовках используется слеш /, то заголовок будет разделен по нему и будет взята правая часть. Пример, заголовок:
"Ледниковый период / IceAge (1970)"
Имя файла будет:
" IcqAge (1970)"


Вариант 2 от vitnet
engine/modules/show.full.php
После строки
$metatags['title'] = stripslashes( $row['title'] );

Вставить
$row['full_story'] = preg_replace("#\\[attachment=(.+?)(:(.+?))?\\]#i","[attachment=$1:скачать {$row['title']}]",$row['full_story']);

10 комментариев

vitnet
PHP-developer

vitnet - 3 ноября 2015 00:04 -

engine/modules/show.full.php
Внимание! У вас нет прав для просмотра скрытого текста.

efr07
Юзер

efr07 - 4 ноября 2015 17:05 -

Сделал как вы написали не работает.

efr07
Юзер

efr07 - 3 ноября 2015 08:43 -

Небольшие дополнения у меня Версия DataLife Engine: 9.4
И ещё чтобы писалось скачать title

Sander
PHP-developer

Sander - 3 ноября 2015 16:11 -

Обновляйтесь до актуальной версии DLE.
Если бы вы сразу написали вашу версию - я бы давал ответ относительно нее.
А так, любой каприз за ваши деньги.

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

efr07
Юзер

efr07 - 4 ноября 2015 17:05 -

Сколько это будет стоить ?

Sander
PHP-developer

Sander - 4 ноября 2015 17:24 -

Подправил вариант от vitnet

engine/modules/show.full.php
После строки
$metatags['title'] = stripslashes( $row['title'] );

Вставить
$row['full_story'] = preg_replace("#\\[attachment=(.+?)(:(.+?))?\\]#i","[attachment=$1:скачать {$row['title']}]",$row['full_story']);

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

efr07
Юзер

efr07 - 5 ноября 2015 11:25 -

Поставил вариант от vitnet , но ничего не работает выводилось как и раньше.

RAMSESS
Юзер

RAMSESS - 17 января 2017 16:58 -

В версии 11.2 Эти способы не работают, подскажите пожалуйста, как реализовать?
Спасибо

RAMSESS
Юзер

RAMSESS - 4 ноября 2017 14:01 -

Как в 12 версии это же реализовать?

RAMSESS
Юзер

RAMSESS - 20 ноября 2017 22:32 -

В 12 версии надо найти $db->query( "SELECT * FROM " . PREFIX . "_files WHERE $where" );
И после нее уже вставить и закомментировать то, что в первом примере

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх