Артём Мáлков

Получаем прямую ссылку на файл статьи (attachment) в DLE

1 янв38 комм

С Новым годом, друзья! Сегодня первое января, а мы уже не расслабляемся и делаем для вас качественный контент.

На днях мы выпускаем очень красивую кнопку для DataLife Engine, так вот там нам было необходимо получить прямую ссылку на файл, для того чтобы осуществить скачивание на нашей стороне, а не на стороне браузера.

И вот как мы решили эту задачу.

1. Откройте файл functions.php в папке /engine/modules/. В нем найдите строку:

$tpl->set( '{link}', $config['http_home_url']."engine/download.php?id=".$row['id'].$area );

И замените ее на:

$tpl->set('{link}', $config['http_home_url'].'uploads/files/'.$row['onserver']);

2. Очистите кэш сайта.

Теперь все ваши файлы в материалах будут доступны для скачивания по прямой ссылке.

Рекомендуем к просмотру
Использование тега [leech] в шаблоне в DLE
Посты
Скачивание файлов по ссылке на JavaScript
Модули и скрипты
Как убрать .html в конце адреса статистических страниц в DLE?
Хаки
38
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    1
      •  Пользователь
    13 янв в 23:13

    Артём, здравствуйте! Подскажите, а как сделать хеш ссылку на прямой файл из доп. поля? Например я в доп. поле вставляю ссылку и уже она прячется за хешом. Могу не правильно выражаться, но думаю смысл понятен).

      • 1
      1067
        •  Команда Pandoge
      15 янв в 22:24

      Алексей Комоса, здравствуйте!

      Не совсем понял... Если ваше поле имеет тип "файл" - то инструкция в статье подходит для этого случая.

    • 1
    2
      •  Пользователь
    4 янв в 15:54

    Добрый день.

    в dle 15 появилась возможность хранения файлов на стороннем фтп.

    Подскажите, пожалуйста. Как реализовать получение прямой ссылки, если загрузка файлов идет на ftp ?

      • 1
      1067
        •  Команда Pandoge
      6 янв в 22:37

      Евгений, здравствуйте! Посмотрю в ближайшее время.

      • 1
      1067
        •  Команда Pandoge
      15 янв в 22:25

      Евгений, что-то демо версия не захотела загружать у меня файлы на FTP. У вас есть возможность предоставить тестовый сайт с описанным функционалом?

    • 1
    2
      •  Пользователь
    27 окт в 00:39

    Доброй ночи, не могли бы помочь поправить dle, чтобы он мог обрабатывать ссылки на файлообменники (mail, яндекс и гугл) через стандартный тег [attachment=https://cloud.mail.ru/...]?

      • 1
      1067
        •  Команда Pandoge
      27 окт в 01:30

      Serhiy, здравствуйте! Для чего нужна такая логика работы?

      • 1
      2
        •  Пользователь
      27 окт в 14:05

      Артём Мáлков, чтобы заставить dle открывать в новом окне все внешние ссылки с помощью модуля Downloads.

    • 2
    11
      •  Проверенный
    16 июл в 22:04

    Помогите пожалуйста с этим вопросом, но на DLE 13

      • 1
      1067
        •  Команда Pandoge
      16 июл в 22:40

      ReCore, здравствуйте.

      Под рукой нет этой версии движка, но попробуйте так.

      Все в том же файле, строку:

      $tpl->set( '{link}', $config['http_home_url']."index.php?do=download&id=".$row['id'].$area_link );

      замените на:

      $tpl->set("{link}", $config["http_home_url"]."uploads/files/".$row["onserver"]);

      По завершению, очистите кеш сайта.

      • 1
      11
        •  Проверенный
      16 июл в 23:18

      Не получилось все также осталась : имя_сайта/serialy/zarubezhnye-serialy/[attachment=4:vedmak_2001.torrent]

      • 1
      11
        •  Проверенный
      17 июл в 10:21

      Поможешь, буду очень благодарен ?

      • 1
      11
        •  Проверенный
      17 июл в 19:42

      Спасибо, помог, а можешь объяснить как ты это сделал ?

      • 1
      1067
        •  Команда Pandoge
      17 июл в 20:13

      ReCore, я понял в чем у Вас проблема.

      В DLE можно файл загрузить двумя способами: через визуальный редактор и через дополнительное поле. Статья посвящена файлам загруженным через визуальный редактор, которые в последующем вставляются в текстовые поля или же содержание новости.

      Как Вы уже сами поняли, у Вас файл грузился в доп. поле.

      По этому, переделал Вам поле с файла на текст, поменял соответствующий вид и поставил разрешение на скачку торрент-файлов с сайта.

      Рабочий пример можете увидеть здесь /filmy/detektiv/46-kladbische-domashnih-zhivotnyh-pet-sematary-2019.html

      По аналогии заполняете и другие новости.

      • 1
      5
        •  Проверенный
      6 апр в 12:53

      Артём Мáлков, мне можете помочь пожалуйста? у меня 14.1 и ссылки к файлов не показывает, потскожите где проблемка

      • 2
      5
        •  Проверенный
      14 апр в 14:58

      Артём Мáлков, Поможешь, PLEASE ?

      • 1
      1067
        •  Команда Pandoge
      изменено 15 апр в 00:29

      Giulius, каким образом вы выводите файл? Вставляете в текст или через дополнительное поле?

      • 1
      5
        •  Проверенный
      23 апр в 19:21

      Артём Мáлков, м краткое описание нажимаю на управление заг. файлов. потом копирую и ставляю в доп поле

      • 2
      5
        •  Проверенный
      2 сен в 16:51

      Артём Мáлков, ? :)

      • 1
      1067
        •  Команда Pandoge
      9 сен в 02:37

      Giulius, здравствуйте! Инструкция выше - рабочая, проверил только что. Тип поля - Одна строка. Не забывайте очистить кеш после внесения изменений.

      В шаблоне файла (attachment.tpl) как минимум должен быть код:

      [allow-download]
      	
      	Скачать файл: <a href="{link}">{name}</a>
      
      [/allow-download]

      Остальное - по необходимости.

    • 1
    2
      •  Пользователь
    23 фев в 22:05

    Добрый вечер.

    Подскажите, пожалуйста, как эту ссылку использовать в шаблоне (прямую?)

      • 1
      1067
        •  Команда Pandoge
      23 фев в 23:47

      Евгений, Здравствуйте.

      В шаблоне вроде не как, разве что через доп. поле. А так, просто вставляйте файл в статью, и ссылка на него будет прямая.

    • 1
    2
      •  Пользователь
    24 янв в 12:39

    Артем Мáлков, а как в версии 10.3?, там совсем другие строки.

      • 2
      1067
        •  Команда Pandoge
      24 янв в 14:05

      Олег, врать не буду, но по моему в этих версиях нет отдельного файла для оформления attachment. Все в том же файле functions.php попробуйте строки (4 раза):

      {$config['http_home_url']}engine/download.php?id={$row['id']}{$area}

      заменить на:

      {$config['http_home_url']}uploads/files/{$row['onserver']}

      Ну и не забывайте про кэш сайта.

      • 1
      2
        •  Пользователь
      24 янв в 15:26

      Спасибо Артем, вроде всё получилось :)

    • 1
    2
      •  Проверенный
    9 дек в 05:51

    У меня этот хак не работает! Всё равно даёт ссылку на аттачменте! Что делать? Помогите. Мне очень нужно!

      • 1
      1067
        •  Команда Pandoge
      9 дек в 10:01

      YigitaliyevSherzodbe, какая версия движка? Кэш DLE чистили?

      • 1
      2
        •  Проверенный
      9 дек в 16:31

      Версия DataLife Engine: 12.1. Кеш сайта очистил 100 раз. Может помогаете! Никак не могу разобраться. Мой Телеграм @uzwebmaster

      • 1
      1067
        •  Команда Pandoge
      9 дек в 18:50

      YigitaliyevSherzodbek, напишите нам в ВК или через форму обратной связи. Нужны будут доступы к вашему сайту. Постараемся решить Ваш вопрос.

    • 1
    766
      •  Гости
    22 сен в 10:56

    Артем ,здравствуйте!

    Как можно связаться с Вами ?

      • 1
      1067
        •  Команда Pandoge
      22 сен в 13:25

      Сергей Розенталь, вверху есть форма обратной связи. На главной странице есть ссылки на соц сети.

    • 1
    766
      •  Гости
    17 сен в 21:24

    Здравствуйте! У меня отсутствует строка $tpl->set( '{link}', $config['http_home_url']."engine/download.php?id=".$row['id'].$area ); в файле functions.php. DLE версии 13. Что-по поменялось в новой версии или я не там ищу?

      • 1
      1067
        •  Команда Pandoge
      18 сен в 03:22

      Анатолий, в 13 версии это строчка:

      $tpl->set( '{link}', $config['http_home_url']."index.php?do=download&id=".$row['id'].$area_link );
    • 1
    766
      •  Гости
    1 мая в 20:49

    Все сделал,ничего не изменилось. Нужно доп.поля создавать, то какое? smiley

    • 3
    766
      •  Гости
    21 янв в 23:46

    У вас не открывается статья "12 вариантов обрезки строки на PHP" - битая ссылка с короткой новости

    • 3
    766
      •  Гости
    10 янв в 18:04

    Артем, давно читаю Ваш блог.

    Со всеми праздниками и спасибо за то, что Вы делаете!

    • 4
    766
      •  Гости
    5 янв в 23:22

    Полезная однако штука. Тюнинг Dle радует всегда) Побольше бы таких разных ништяков на этом блоге cool

Подняться наверх
«Pandoge» - помощник вебмастера