Артём Мáлков

Кнопка «Скачать» с функцией фоновой загрузки файла для DLE

2 янв68 комм

Как я и обещал – представляем вам новую уникальную кнопку загрузки (аттачмент) для CMS DataLife Engine, в которой сочетается приятный дизайн и необычный функционал.

А именно: кнопка сопровождается красивой анимацией и осуществляет закачку файла в фоновом режиме.

Кнопка «Скачать» с функцией фоновой загрузки файла для DLE

Отличное решение для сайтов, которые размещают на своих страницах файлы больших размеров.

Установка кнопки на сайт

1. Подключитесь к вашему сайту по FTP.

2. Скачайте архив в конце статьи, разархивируйте и содержимое закачайте в папку вашей темы.

3. Далее, в файле main.tpl перед закрывающим тегом </body>, подключите скрипт:

<script type="text/javascript" src="/js/download_button.js"></script>

4. Здесь же в секции HEAD подключите шрифт:

<link href="https://fonts.googleapis.com/css?family=Roboto+Condensed" rel="stylesheet" />

5. После чего в стили вашего сайта (в самый низ) вставьте:

/** © 2018 Artem Malcov | https://www.pandoge.com/moduli-i-skripty/knopka-skachat-s-funkciey-fonovoy-zagruzki-fayla-dlya-dle **/

.black_button * {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

.black_button *:before, .black_button *:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

.black_button {
	height: 61px;
	width: 265px;
	border-top: 1px solid #4b4b4b;
	border-bottom: 1px solid #090909;
	border-left: 1px solid #090909;
	border-right: 1px solid #090909;
	border-radius: 99px;
	background: #313131;
	background: -moz-linear-gradient(top, #313131 0%, #242424 100%);
	background: -webkit-linear-gradient(top, #313131 0%, #242424 100%);
	background: linear-gradient(to bottom, #313131 0%, #242424 100%);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#313131", endColorstr="#242424", GradientType=0);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
	cursor: pointer;
	transition: .2s;
	margin: 0 auto;
}

.black_button:hover {
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
	transition: .2s;
}

.black_button_one {
	color: #838383;
	font-family: "Roboto Condensed", sans-serif;
	font-size: 18px;
	height: 60px;
	line-height: 60px;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
	width: 200px;
	margin: 0 auto;
	background: url("../img/download.png") no-repeat center right;
}

.left_button span {
	font-size: 13px;
}

.black_button_progress {
	width: 200px;
	margin: 0 auto;
	color: #838383;
	font-family: "Roboto Condensed", sans-serif;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
	display: none;
}

.right_button {
	font-size: 24px;
	float: left;
	width: 60px;
	text-align: right;
	height: 60px;
	line-height: 60px;
}

.left_button {
	float: left;
	width: 140px;
	padding: 8px 0 0 0;
}

.progress_bar {
	background: #222;
	border-bottom: 1px solid #393939;
	height: 10px;
	border-radius: 99px;
	box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.5);
	padding: 2px 0 0 0;
	margin: 7px 0 0 0;
}

.progress_line {
	background: #2c4c7f;
	background: -moz-linear-gradient(left,  #2c4c7f 0%, #c95cc6 50%, #f7b401 100%);
	background: -webkit-linear-gradient(left,  #2c4c7f 0%,#c95cc6 50%,#f7b401 100%);
	background: linear-gradient(to right,  #2c4c7f 0%,#c95cc6 50%,#f7b401 100%);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#2c4c7f", endColorstr="#f7b401", GradientType=1);
	height: 5px;
	margin: 0 2px 0 2px;
	border-radius: 99px;
	position: relative;
	max-width: 136px;
	width: 0;
}

.progress_line div {
	position: absolute;
	height: 1px;
	background: #fff;
	border-radius: 99px;
	opacity: 0.4;
	left: 1px;
	right: 1px;
}

Обязательно проставьте корректную ссылку до иконки загрузки.

6. В папке вашей темы откройте файл attachment.tpl и все содержимое замените на:

[allow-download]

	<div class="black_button" data-item="{link}">
	
		<div class="black_button_one">Нажми & Скачай</div>
		
		<div class="black_button_progress">
		
			<div class="left_button">
			
				<span>Идет скачивание...</span>
				
				<div class="progress_bar">
				
					<div class="progress_line">
						<div></div>
					</div>
					
				</div>
				
			</div>

			<div class="right_button">0%</div>
			
		</div>
		
	</div>
	
[/allow-download]

7. Затем обязательно устанавливаете хак из этой статьи.

8. Чистите кэш сайта. Установка кнопки закончена.

А это небольшая видеодемонстрация того, что в итоге вас ждет после установки кнопки на вашем сайте.

Приятного пользования! Если вдруг у вас возникнут трудности в использовании кнопки – пишите об этом в комментариях.

Файл
Размер
Ссылка
black_button.zip
3,85 Kb
Скачать с сервера
Рекомендуем к просмотру
Выводим расширение файла (attachment) в DLE версий ниже 10.5
Хаки
Анимированная кнопка «Скачать» для DLE
Модули и скрипты
Как правильно подключить JS- и PHP-скрипты к вашему сайту?
Статьи и советы
68
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 0
    15
      •  Проверенный
    22 июл в 17:00

    Поставил данную кнопку, но файл качать не хочет, что делать? Маленького объема качает легко!

      • 0
      15
        •  Проверенный
      22 июл в 19:13

      Я разобрался в чем была ошибка, но у меня теперь вопрос, на сколько я понимаю, кнопка должна работать так, что загрузка происходит до 100 процентов, а по готовности сохраняется на устройстве, так почему тогда после загрузки, происходит ещё одна загрузка с сервера, или это только подготовка файла, но не скачка?

      • 0
      1066
        •  Команда Pandoge
      24 июл в 01:33

      Павел Лукашенко, не совсем понял

      • 0
      15
        •  Проверенный
      9 фев в 04:17

      Артём Мáлков, на сколько я понимаю она не на blob? Тоесть добиться скачивания как на mega.nz (не реклама) не получится? Чтоб браузер не передавал в шторке уведомлений прогресс скачивания, а отдавал уже готовый файл

      • 0
      1066
        •  Команда Pandoge
      9 фев в 17:28

      Павел Лукашенко, старая кнопка, сделана максимально просто (не на blob). Будет время - пересмотрю подход.

      • 1
      15
        •  Проверенный
      9 фев в 17:52

      Артём Мáлков, если вы реализуете загрузку файлов на blob, это будет спасением моих бессонных ночей!

    • 0
    3
      •  Пользователь
    31 янв в 00:55

    Хочу поставить данную функцию на сайт, но как она работает? Надо обязательно файлы закидывать через панель управления? просто я всегда закидываю файлы через ftp и потом подставляю ссылку. Так будет работать?

    • 0
    1
      •  Пользователь
    22 авг в 13:40

    А как вообще эту кнопку теперь в новость добавить

    • 0
    9
      •  Пользователь
    26 июл в 20:37

    Здравствуйте. ссылки некликабельные. Как исправить? Можете глянуть тут http://bloodandsoulclassic.ru/zagruzka-klienta.html

      • 0
      1066
        •  Команда Pandoge
      26 июл в 22:20

      Кирилл Зимин, в HEAD сайта вставьте:

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

      После чего очистите кеш сайта.

      • 0
      9
        •  Пользователь
      26 июл в 22:49

      Артем Мáлков

      Не помогает. Могу дать админку в ЛС сами посмотрите

      • 0
      1066
        •  Команда Pandoge
      26 июл в 23:58

      Кирилл Зимин, да, давайте.

      • 0
      1066
        •  Команда Pandoge
      27 июл в 14:57

      Кирилл Зимин, ошибки у Вас были следующие:

      1. Перенес jQuery вниз, выше подключаемого скрипта.

      2. Вы не правильно подключили скрипт кнопки.

      Было:

      <script type="text/javascript" src="/js/download_button.js"></script>

      А нужно:

      <script type="text/javascript" src="/templates/GAMEPLAY/js/download_button.js"></script>

      • 0
      1066
        •  Команда Pandoge
      27 июл в 15:00

      Кирилл Зимин, а еще у Вас запрещено скачивать торренты. Для решение этой проблемы.

      1. Подключитесь к сайту по FTP.

      2. Откройте файл .htaccess в папке /uploads/files/

      3. Строку:

      <FilesMatch "\.(avi|divx|mp3|mp4|flv|swf|wmv|m4v|m4a|mov|mkv|3gp|f4v)$|^$">

      замените на:

      <FilesMatch "\.(avi|divx|mp3|mp4|flv|swf|wmv|m4v|m4a|mov|mkv|3gp|f4v|torrent)$|^$">

      4. Очистите кеш сайта.

      • 0
      1066
        •  Команда Pandoge
      27 июл в 15:07

      Кирилл Зимин, скрипт jQ вернул обратно наверх. Ошибка была в другом еще - у Вас два раза подключаются скрипты. Перенес код с /add.php?folder={THEME}/css/,{THEME}/js/&ignore=main вниз сайта.

      • 1
      9
        •  Пользователь
      27 июл в 15:08

      Вообще было разрешено ну ок. сейчас сделаю

      • 0
      9
        •  Пользователь
      27 июл в 15:49

      Спасибо все работает. но большой файл скачивать не хочет. как выставить скорость скачивания не подскажите?

      • 0
      1066
        •  Команда Pandoge
      27 июл в 15:53

      Кирилл Зимин, скачивает, лично проверял, но надо ждать. По ссылке выше я подождал до загрузки 2%.

      • 0
      1066
        •  Команда Pandoge
      22 авг в 15:07

      Кирилл Зимин, в комментариях уже есть ответ на Ваш вопрос.

    • 0
    7
      •  Пользователь
    27 мар в 14:25

    Сделал всё как надо.Не работает.Всё как было так и осталось.Помогите!!!

    Может ссылку надо как то прописывать???

      • 1
      1066
        •  Команда Pandoge
      27 мар в 14:41

      Жека Асентио, дайте ссылку на сайт, где установлена кнопка.

      • 0
      7
        •  Пользователь
      27 мар в 14:53

      https://boomra.ru/vzlomki-i-mody/585-skachat-spacetaptap-poslednyaya-versiya-dlya-android.html

      • 0
      1066
        •  Команда Pandoge
      27 мар в 15:20

      Жека Асентио,

      1. У вас скрытые ссылки на сайте. Почитайте эту статью - https://www.pandoge.com/stati_i_sovety/ubiraem-standartnye-kopirayty-levye-ssylki-v-dle

      2. Я не нашел кода из статьи на Вашем сайте.

      Верстки нет, ссылка на файл - https://boomra.ru/js/download_button.js не рабочая.

      • 0
      7
        •  Пользователь
      27 мар в 15:23

      А как сделать рабочей?проверить еще раз всё ли сделал правильно?

      • 0
      1066
        •  Команда Pandoge
      27 мар в 15:26

      Жека Асентио, можете предоставить доступ в админку - посмотрю в чем проблема.

      • 0
      7
        •  Пользователь
      27 мар в 15:31

      да могу.где написать?

      • 0
      7
        •  Пользователь
      27 мар в 16:21

      левые ссылки убрал

      • 0
      1066
        •  Команда Pandoge
      27 мар в 16:34

      Жека Асентио, можете прямо в комментариях.

      • 0
      1066
        •  Команда Pandoge
      27 мар в 17:12

      Жека Асентио, нужен FTP.

      • 0
      1066
        •  Команда Pandoge
      27 мар в 17:31

      Жека Асентио, проверьте на той странице, что ранее присылали.

      Ошибки следующие:

      1. Были ошибки в других скриптах - поправил их.

      2. Нужно указывать не ссылку на файл, а грузить его к себе и вставлять через специальный код - https://nimb.ws/zZfvtB

      3. Было запрещено грузить apk файлы на сайт. Снял ограничение + увеличил допустимый размер файлов разрешенных к загрузке для админов.

      • 0
      7
        •  Пользователь
      27 мар в 18:46

      Всё работает.Спасибо большое.

      • 1
      7
        •  Пользователь
      27 мар в 20:52

      Спасибо еще раз большое

    • 0
    2
      •  Проверенный
    30 дек в 13:20

    Здравствуйте! Кнопка не кликабельная, что делать?

      • 0
      1066
        •  Команда Pandoge
      30 дек в 13:27

      Vladislav Ivanov, Здравствуйте!

      В консоли разработчиков нет ошибок?

      • 0
      2
        •  Проверенный
      30 дек в 20:10

      Артем Мáлков, здравствуйте. нет, нету

      • 0
      1066
        •  Команда Pandoge
      30 дек в 21:27

      Vladislav Ivanov, а можно ссылку на сайт, где установлена кнопка?

    • 0
    766
      •  Гости
    1 окт в 11:06

    Подскажите,как поменять цвет кнопки?

      • 0
      1066
        •  Команда Pandoge
      2 окт в 01:57

      Seven, Изменяйте свойства в .black_button

    • 0
    766
      •  Гости
    26 авг в 16:33

    Здравствуйте, помогите пожалуйста мне разобраться с attachment, как сделать с помощи attachment кнопку скачать на файлообменник depositfiles?

      • 0
      1066
        •  Команда Pandoge
      26 авг в 17:29

      Макин, этот вид аттачмента не подходит для внешних ресурсов.

      • 0
      766
        •  Гости
      26 авг в 21:13

      Макин, с помощью дополнительных полей.

      Вот:

      full_story.tpl, вставляем:

      [xfgiven_x]<a href="[xfvalue_x]"><img src="ваша картинка.png" alt="Скачать {title} с depositfiles"></a> [/xfgiven_x]

      Где x - название дополнительного поля; ваша картинка.png - путь до картинки; {title} - можно использовать для заголовка статьи в описании кнопки

      Создаем доп поле depositfiles и в шаблоне в нужном месте прописываем:

      <table width="100%"><tr> <td><div style="padding-top: 18px;" class="news">

      {full-story}</p></p>

      [xfgiven_depositfiles]

      <div class="btn"><a href="[xfvalue_depositfiles]" target="_blank" rel="nofollow" class="a-btn" >

      <span class="a-btn-symbol">M</span>

      <span class="a-btn-text">Depositfiles.com</span>

      <span class="a-btn-slide-text">{title}</span>

      <span class="a-btn-slide-icon"></span>

      </a></div>

      [/xfgiven_depositfiles]

      </div></td></tr></table>

    • 0
    766
      •  Гости
    5 июл в 08:52

    помогите а как вообще включить кнопку на сайт ? может тег какой-то писать нужно или что ?

    Я когда пишу статьи в дле 12.1 я не могу найти как включить кнопку и пользуюсь постоянно просто картинкой но хотелось бы и кнопкой

    • 1
    766
      •  Гости
    17 мая в 20:03

    Доброго времени суток!

    Всё установил, а кнопки не вижу...

    А как вывести кнопку в шаблон?

    У меня есть необходимость и в короткие новости и в длинные

      • 0
      1066
        •  Команда Pandoge
      17 мая в 22:12

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

      • 0
      766
        •  Гости
      18 мая в 10:02

      Артем, кнопка появилась, но при нажатии замирает и проценты на 0-ле.

      Что не так?

      • 0
      766
        •  Гости
      18 мая в 10:13

      Еще хотел спросить, а возможно здесь сделать чтобы скачивали не только с сервера, а по внешней ссылки, с файлообменника?

      • 0
      1066
        •  Команда Pandoge
      18 мая в 13:18

      Сергей, с внешних источников - нет.

      Я проверил, кнопка ведет на файл /uploads/files/2018-05/1526575900_slippingoutmenu.zip

      А у Вас нет такого на сайте. Соответственно - нет скачивания.

      • 0
      766
        •  Гости
      18 мая в 14:12

      Файл лежит на месте, но почему-то не качается.....

      • 0
      1066
        •  Команда Pandoge
      18 мая в 14:16

      Сергей, возможно проблемы на хостинге или отсутствует файл htaccess в папке с файлами.

      Если нужна помощь - пришлите доступ к FTP.

    • 0
    766
      •  Гости
    28 мар в 17:37

    К сожалению не срабатывает анимация прогресс бара и процентов ((

    Скрипт всё отрабатывает - блок с прогресс баром в целом появляется, файл отдаёт, но анимация при этом отсутствует. В htaccess всё прописано, как из комментария выше.

    Артём, в чём может быть проблема?

      • 7
      1066
        •  Команда Pandoge
      29 мар в 01:49

      Дмитрий, Попробуйте в HEAD вставить <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

      • 0
      766
        •  Гости
      29 мар в 12:52

      Артём, к сожалению и подключение jquery не помогло :(

      • 6
      1066
        •  Команда Pandoge
      29 мар в 19:02

      Дмитрий, можно взглянуть на сайт?

    • 0
    766
      •  Гости
    17 мар в 17:18

    Кнопка нормально высвечивается,при нажатии на нее шкала 100%, скачивания не происходит...

      • 0
      766
        •  Гости
      17 мар в 19:40

      Пришлось изрядно ковырять и исправлять файлы и стили.

      7. Затем обязательно устанавливаете хак из этой статьи.

      В нем найдите строку:

      $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']);

      в dle 12.1 не меняем эту строку!!!

      Здесь же в секции HEAD подключите шрифт:

      <link href="https://fonts.googleapis.com/css?family=Roboto+Condensed" rel="stylesheet">

      Проще зайти по этой ссылке https://fonts.googleapis.com/css?family=Roboto+Condensed" rel="stylesheet и скопировать содержимое в style.css шаблона исключив лишний запрос при загрузке!

      • 1
      766
        •  Гости
      17 мар в 20:36

      Еще заметил такой баг,видимо связано с некорретной работой js.. При добавлении файла и выбором по центру, текст на кнопке смещается в центр! Вроде бы решил это так:

      .black_button_one {

      color: #838383;

      font-family: 'Roboto Condensed', sans-serif;

      font-size: 18px;

      height: 60px;

      line-height: 60px;

      text-shadow: 0 1px 2px rgba(0, 0, 0, .6);

      display: block;

      margin: 0 auto 0 auto;

      text-align: left;

      width: 200px;

      margin: 0 auto;

      background: url('../images/download.png') no-repeat center right;

      }

    • 0
    766
      •  Гости
    5 фев в 17:32

    не роботает при добавление любо какого файла появляеться такая надпись а кнопки скачать нету хотя к картинке указал путь правельний http://prntscr.com/iaf8h8

      • 5
      1066
        •  Команда Pandoge
      5 фев в 19:24

      ярослав, кнопка рабочая на 100%. Проверяйте кэш и корректность установки.

    • 0
    766
      •  Гости
    23 янв в 15:56

    Здравствуй, Артем, помоги с кнопкой пожалуйста вожусь с ней уже суки, установил норм но при нажатии она скачать она не производит не каких действий но в статистике вино что типо скачалось,

    помоги решить.

      • 0
      766
        •  Гости
      23 янв в 16:00

      Вот на кнопке что пишет http://prntscr.com/i4eoy7

      • 0
      766
        •  Гости
      23 янв в 16:01

      помоги пожалуйста нет сил бороться с этой кнопкой, НО очень хочу установить её

      • 0
      766
        •  Гости
      23 янв в 16:11

      Вот мой сайт http://scrip-ot-webmastera.ru/index.php?newsid=73

      помоги пока ты в сети

      • 0
      766
        •  Гости
      23 янв в 16:30

      ответь здесь то у меня почты нету пока

      • 7
      1066
        •  Команда Pandoge
      23 янв в 19:50

      artem, Здравствуйте. У меня все скачивается при нажатии на кнопку. Может у Вас кэш?

      И вы говорите не об этой кнопке, а об этой - https://www.pandoge.com/moduli_i_skripty/animirovannaya-knopka-skachat-dlya-dle

    • 12
    1066
      •  Команда Pandoge
    10 янв в 01:01

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

    Для того, чтобы исправить это сделайте следующее.

    1. Откройте файл .htaccess в папке /uploads/files/ и разу ПОСЛЕ:

    <FilesMatch ".*">
       Order allow,deny
       Deny from all
    </FilesMatch>

    Вставьте:

    <FilesMatch "\.(mdl|sma|amxx)$|^$">
    	Order deny,allow
    	Allow from all
    	forceType application/octet-stream
    	Header set Content-Disposition attachment
    </FilesMatch>

    Где mdl|sma|amxx - список проблемных расширений.

    2. Сохраняете изменения и отправляете файл обратно на сайт. Это должно решить вашу проблему.

      • 1
      766
        •  Гости
      22 янв в 07:17

      Спасибо Артем!

    • 1
    766
      •  Гости
    5 янв в 23:24

    Обращусь к автору. Было бы круто если бы вы предложили несколько вариантов кнопок (с разными анимациями и тд). Например сделать такое-же с этой кнопкой - https://www.pandoge.com/moduli_i_skripty/animirovannaya-knopka-skachat-dlya-dle

    • 1
    766
      •  Гости
    5 янв в 23:20

    Использовал раньше такое на своём сайте. Интересная штука smiley

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