Информер курса валют ЦБ РФ   •   Магазин расширений
3 599 просм
27 комм
Поделиться:

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

Как я и обещал – представляем вам новую уникальную кнопку загрузки (аттачмент) для 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. После чего в стили вашего сайта (в самый низ) вставьте:

/** Copyright (c) 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. Чистите кэш сайта. Установка кнопки закончена.

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

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

ФайлРазмерСсылка
27
комментарий
Навигация:
1 2
Artem
5.01 в 23:20
Использовал раньше такое на своём сайте. Интересная штука smiley
  • 1
Artem
5.01 в 23:24
Обращусь к автору. Было бы круто если бы вы предложили несколько вариантов кнопок (с разными анимациями и тд). Например сделать такое-же с этой кнопкой - https://www.pandoge.com/moduli_i_skripty/animirovannaya-knopka-skachat-dlya-dle
  • 1
Не так давно поступило сообщение от одного пользователя о том, что при скачке файлов некоторых расширений не наблюдается анимация.

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

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. Сохраняете изменения и отправляете файл обратно на сайт. Это должно решить вашу проблему.
  • 11
Евгений
22.01 в 07:17
Спасибо Артем!
  • 0
artem
23.01 в 15:56
Здравствуй, Артем, помоги с кнопкой пожалуйста вожусь с ней уже суки, установил норм но при нажатии она скачать она не производит не каких действий но в статистике вино что типо скачалось,
помоги решить.
  • 0
artem
23.01 в 16:00
Вот на кнопке что пишет http://prntscr.com/i4eoy7
  • 0
artem
23.01 в 16:01
помоги пожалуйста нет сил бороться с этой кнопкой, НО очень хочу установить её
  • 0
artem
23.01 в 16:11
Вот мой сайт http://scrip-ot-webmastera.ru/index.php?newsid=73
помоги пока ты в сети
  • 0
artem
23.01 в 16:30
ответь здесь то у меня почты нету пока
  • 0
artem, Здравствуйте. У меня все скачивается при нажатии на кнопку. Может у Вас кэш?

И вы говорите не об этой кнопке, а об этой - https://www.pandoge.com/moduli_i_skripty/animirovannaya-knopka-skachat-dlya-dle
  • 7
ярослав
5.02 в 17:32
не роботает при добавление любо какого файла появляеться такая надпись а кнопки скачать нету хотя к картинке указал путь правельний http://prntscr.com/iaf8h8
  • 0
ярослав, кнопка рабочая на 100%. Проверяйте кэш и корректность установки.
  • 5
Сергей
17.03 в 17:18
Кнопка нормально высвечивается,при нажатии на нее шкала 100%, скачивания не происходит...
  • 0
Сергей
17.03 в 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 шаблона исключив лишний запрос при загрузке!
  • 0
Сергей
17.03 в 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
Оставить комментарий:
Нажимая кнопку «Отправить» вы даете согласие на обработку своих персональных данных.
Ваше Имя
Ваш E-mail
Текст комментария