Артём Мáлков

Анимированная кнопка «Скачать» для DLE

24 сен38 комм

Сегодня на нашем сайте пополнение – новая работа для DataLife Engine – стильная кнопка «Скачать» с анимацией.

Анимированная кнопка «Скачать» для DLE

Что можно отметить в этой кнопке?

  1. Приятный дизайн.
  2. Красивая анимация, которая продумана до мелочей.

Поэтому, не раздумывая, ставьте ее на свои проекты и делитесь ею с друзьями!

Установка

Итак, для установки необходимо проделать несколько несложных шагов, которые включают в себя замену и изменение участков кода движка.

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

2. Откройте файл attachment.tpl в папке /templates/artem_malcov/ (то, что подчеркнуто – папка вашей темы) и все содержимое файла замените на:

[allow-download]

	<div class="attachment_position">
	
		<a href="{link}" title="Скачиваний: {count}">
		
			<div class="attachment_main"></div>
			
			<div class="attachment_block">
			
				<div class="attachment_block_2">
				
					<div class="attachment_block_3">

						<div class="attachment_file">
							<span>Скачать сейчас</span>
							Расширение: {extension}
						</div>

						<div class="attachment_size">
							{size}
						</div>

						<div class="attachment_border"></div>

					</div>
					
				</div>

				<div class="icon_attachment"></div>
				
			</div>
			
		</a>
		
	</div>
	
[/allow-download]

<script>

	$(".attachment_position").on({

		mouseenter: function () {

			var attachment_target = $(this);

			$(attachment_target).addClass('attachment_active');

			setTimeout(function() {
			
				$(".attachment_active .attachment_block_2").css({
					"margin": "6px 0 0 0"
				});

				$(".attachment_active .attachment_block_3").css({
					"margin": "0 0 0 -17px"
				});

				setTimeout(function() {
				
					$(".attachment_active .icon_attachment").css({
						"opacity": "1",
						"visibility": "visible",
						"-webkit-transform": "translateY(0)",
						"-moz-transform": "translateY(0)",
						"-ms-transform": "translateY(0)",
						"transform": "translateY(0)"
					});
					
				}, 400);
				
			}, 400);

		}, mouseleave: function () {

			var attachment_target = $(this);

			setTimeout(function() {
			
				$(".attachment_active .attachment_block_2").css({
					"margin": "6px 0 0 37px"
				});

				$(".attachment_active .attachment_block_3").css({
					"margin": "0 0 0 4px"
				});

				$(attachment_target).removeClass('attachment_active');
				
			}, 400);

			setTimeout(function() {
			
				$(".attachment_active .icon_attachment").css({
					"opacity": "0",
					"visibility": "hidden",
					"-webkit-transform": "translateY(-20%)",
					"-moz-transform": "translateY(-20%)",
					"-ms-transform": "translateY(-20%)",
					"transform": "translateY(-20%)"
				});
				
			}, 0);

			setTimeout(function() {
			
				$(".attachment_active .icon_attachment").css({
					"opacity": "0",
					"visibility": "hidden",
					"-webkit-transform": "translateY(-20%)",
					"-moz-transform": "translateY(-20%)",
					"-ms-transform": "translateY(-20%)",
					"transform": "translateY(-20%)"
				});
				
			}, 800);
    	
		}
		
	});
	
</script>

Сохраните изменения и отправьте файл обратно на сайт.

3. В секцию HEAD, перед закрывающим ее тегом (чаще всего она находится в файле main.tpl), подключите шрифт:

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

4. Далее в файл ваших стилей, в самый низ, вставьте:

/** © 2017 Artem Malcov | https://www.pandoge.com/moduli-i-skripty/animirovannaya-knopka-skachat-dlya-dle **/

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

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

.attachment_position {
	position: relative;
	height: 72px;
	width: 330px;
	margin: 0 auto;
}

.attachment_main {
	background: url("../img/pattern_4.png");
	height: 72px;
	width: 330px;
	border-radius: 99px;
	position: absolute;
	transition: .3s;
	z-index: 99;
	top: 0;
	left: 0;
	opacity: 0;
	box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, .1) inset;
}

.attachment_position:hover .attachment_main {
	opacity: 1;
	transition: .3s;
}

.attachment_block {
	background: url("../img/pattern.png");
	width: 290px;
	height: 64px;
	border-radius: 99px;
	float: right;
	margin: 4px 4px 0 0;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 999;
}

.attachment_block_2 {
	width: 215px;
	height: 52px;
	background: url("../img/pattern_2.png");
	border-radius: 99px;
	border-bottom: 1px solid #3a9bbd;
	box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, .2) inset;
	margin: 6px 0 0 37px;
	padding: 4px 0 0 0;
	transition: .3s;
}

.icon_attachment {
	width: 50px;
	height: 39px;
	background: url("../img/download.png") no-repeat center center;
	opacity: 0;
	margin: 16px 13px 0 0;
	-webkit-transform: translateY(-20%);
	-moz-transform: translateY(-20%);
	-ms-transform: translateY(-20%);
	transform: translateY(-20%);
	visibility: hidden;
	position: absolute;
	top: 0;
	right: 0;
	transition: .3s;
}

.attachment_block_3 {
	width: 207px;
	height: 44px;
	background: url("../img/pattern_3.png");
	border-radius: 99px;
	margin: 0 0 0 4px;
	box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, .4);
	border-top: 1px solid #53616f;
	transition: .3s;
}

.stop_animation {
	opacity: 0 !important;
	-webkit-transform: translateY(-20%) !important;
	-moz-transform: translateY(-20%) !important;
	-ms-transform: translateY(-20%) !important;
	transform: translateY(-20%) !important;
	visibility: hidden !important;
}

.attachment_file {
	font-family: "Open Sans Condensed", sans-serif;
	color: #fff;
	font-size: 12px;
	text-transform: uppercase;
	padding: 1px 0 0 18px;
	float: left;
}

.attachment_file span {
	font-size: 17px;
	display: block;
	margin: 0 0 -3px 0;
}

.attachment_size {
	float: right;
	color: #fff;
	font-family: "Open Sans Condensed", sans-serif;
	padding: 3px 17px 0 0;
	text-transform: uppercase;
	font-size: 15px;
}

.attachment_size span {
	font-size: 26px;
}

.attachment_border {
	border-left: 1px solid #3b3a3d;
	border-right: 1px solid #2b292c;
	height: 43px;
	float: right;
	margin: 0 10px 0 0;
}

.attachment_position a {
	text-decoration: none !important;
}

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

6. Откройте файл functions.php в папке /engine/modules/, найдите строку, содержащую:

$tpl->set( '{size}', formatsize( @filesize( ROOT_DIR . '/uploads/files/' . $row['onserver'] ) ) );

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

$size_fix = formatsize(@filesize(ROOT_DIR."/uploads/files/".$row["onserver"]));
$size_fix = explode(" ", $size_fix);

$tpl->set("{size}", "<span>".$size_fix[0]."</span>".$size_fix[1]);

Сохраните изменения и отправьте файл обратно на сайт.

7. Очистите кэш сайта. Установка закончена.

Для представления того, как в итоге все должно получиться, посмотрите это видео:

Приятного пользования!

Файл
Размер
Ссылка
img.zip
22,79 Kb
Скачать с сервера
Рекомендуем к просмотру
Выводим расширение файла (attachment) в DLE версий ниже 10.5
Хаки
Кнопка «Скачать» с функцией фоновой загрузки файла для DLE
Модули и скрипты
Стильные кнопки «Скачать» для DLE
Модули и скрипты
38
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 0
    1066
      •  Команда Pandoge
    28 ноя в 17:32

    А не скажу, здравствуйте!

    Вероятнее всего, не туда вставили стили или не очистили кеш сайта.

    • 1
    2
      •  Проверенный
    28 ноя в 13:05

    Артём Мáлков, так как решили данную проблему?

    • 0
    2
      •  Проверенный
    28 ноя в 11:14

    Привет Артём.

    Спасибо за кнопку и подробное описание.

    однако у меня проблема, установил вроде всё верно, но дизайн кнопки не показывает.

    Видно только текст "Скачать сейчас. Расширение.rar"

    подскажи пожалуйста, что не так сделал?

    • 2
    1066
      •  Команда Pandoge
    19 ноя в 23:10

    Zied Ammar, Glad I could help you! smiley

    • 0
    5
      •  Проверенный
    19 ноя в 21:46

    Thank you, very much for the help.

    https://i.ibb.co/2y7YpCr/download-button.png

    • 0
    5
      •  Проверенный
    16 ноя в 19:50

    Artyom Malkov, Хорошо, я написал тебе на почту.

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

    Zied Ammar, пришлите доступ к сайту (админка+FTP), постараюсь узнать в чем дело.

    • 0
    5
      •  Проверенный
    16 ноя в 15:26

    Artyom Malkov,

    Спасибо, я не могу найти какой-либо вариант в настройках системы, чтобы включить/отключить размер вложения.

    вот скриншот настройки файла: https://i.ibb.co/HG40FY9/screen.png

    • 0
    1066
      •  Команда Pandoge
    16 ноя в 00:38

    Zied Ammar, насколько я вижу, в DLE этой версии есть поддержка тега {size}, а в этой кнопке он прописан. Единственное что, проверьте настройки админки, может быть там есть отключение отображения размера в файлах.

    • 0
    5
      •  Проверенный
    16 ноя в 00:15

    Artyom Malkov,

    DLE V13.2

    • 0
    1066
      •  Команда Pandoge
    15 ноя в 17:35

    Zied Ammar, здравствуйте. Какая версия DLE?

    • 0
    5
      •  Проверенный
    15 ноя в 12:31

    Здравствуй,

    Подскажите пожалуйста, как отобразить размер файла внутри кнопки

    В full-story код такой: [attachment=3]

    https://i.ibb.co/ScjvF6B/download-button.png

    • 0
    1066
      •  Команда Pandoge
    22 фев в 22:13

    Vlad, хотелось бы больше конкретики.

    Какая версия движка. Чистили ли кэш. Сайт, где наблюдается проблема.

    • 1
    1
      •  Пользователь
    22 фев в 19:53

    Не работает. При нажатии на кнопку просто перенаправляет на главную страницу сайта

    • 6
    1066
      •  Команда Pandoge
    11 мар в 16:13

    Serega, адаптировать шаблон под дополнительное поле.

    • 0
    766
      •  Гости
    11 мар в 02:54

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

    • 2
    766
      •  Гости
    9 фев в 01:58

    Артем, приношу свои извинения, вот я слепота не видел навигации.

    Извините ещё раз.

    Проблема решена спасибо огромное Вам, за терпеливость и отзывчивость.

    • 7
    1066
      •  Команда Pandoge
    8 фев в 12:52

    artem, решение описано выше + в отдельной статье - https://www.pandoge.com/haki/vyvodim-rasshirenie-fayla-attachment-v-dle-versiy-nizhe-105

    • 0
    766
      •  Гости
    8 фев в 11:45

    Сколько возьмёшь чтобы исправить ошибку? Только если можно не затягивать с ответом

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

    Помогите решить проблему не могу найти выход уже неделю ищу способ решить не получается.

    • 6
    1066
      •  Команда Pandoge
    28 янв в 12:35

    artem, а что по Вашему выше я написал три дня назад?

    • 1
    766
      •  Гости
    28 янв в 12:05

    помоги пожалуйста решить эту проблему

    • 1
    766
      •  Гости
    27 янв в 21:08

    Здравствуйте, вижу не поможете?

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

    artem, откройте файл functions.php в папке /engine/modules/

    Далее, найдите:

    $row['name'] = end( $row['name'] );

    и сразу после, вставьте:

    $filename_arr = explode( ".", $row['onserver'] );

    $type = strtolower(end( $filename_arr ));

    Здесь же найдите:

    $tpl->set( '{name}', $row['name'] );

    И сразу после вставьте:

    $tpl->set( '{extension}', $type );

    Сохраните изменения и отправьте файл обратно на сервер.

    Очистите кэш сайта, проблема должна решиться.

    • 0
    766
      •  Гости
    24 янв в 18:46

    Версия движка 10.5

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

    artem, какая у Вас версия движка?

    • 0
    766
      •  Гости
    24 янв в 09:23

    Здравствуйте, поможете? или хотя бы подскажите где исправить.

    • 0
    766
      •  Гости
    23 янв в 21:33

    А вот об этой ошибке можете что-то подсказать как исправить http://prntscr.com/i4jz5u ведь там должно быть так http://prntscr.com/i4k02q

    Буду очень признателен если поможете.

    Спасибо зарание

    • 1
    766
      •  Гости
    9 дек в 21:24

    Артем сделайте еще пару стильных кнопок.

    • 5
    1066
      •  Команда Pandoge
    29 ноя в 17:21

    Юрий, Что-то мне подсказывает, что вы не все сделали по инструкции. А именно -

    В случае, если графика на кнопке отсутствует – проставьте корректные адреса до нее в стилях выше.

    Так что сначала делайте все по инструкции - а только потом возникайте. wink

    • 7
    1066
      •  Команда Pandoge
    18 ноя в 22:20

    Рус, Здравствуйте. Не заметил недочетов на сайте. Может у Вас кэш?

    • 0
    766
      •  Гости
    18 ноя в 21:38

    Артем доброго времени. Поставил еще вашу кнопку и на другой сайт все работает но съехала надпись размер торрента,и разделитель текста посмотрите в чем дело а то чет не могу найти стил отвечающий за это. {link} Спасибо!

    • 6
    1066
      •  Команда Pandoge
    16 ноя в 21:09

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

    1. В head вашего сайта вставьте:

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

    2. Поправьте ссылки до изображений в стилях.

    • 0
    766
      •  Гости
    16 ноя в 20:58

    Не работает ваша кнопка Артем,вернее ее анимация.. сайт {link} посмотрите в чем проблема. Спасибо.

    • 5
    1066
      •  Команда Pandoge
    7 ноя в 13:17

    Вася, Здравствуйте. Пришлите сайт где установлена кнопка - подскажу как исправить.

    • 0
    766
      •  Гости
    7 ноя в 08:56

    Спасибо, дельная вещь, Артём не подсобишь, вроде бы всё по инструкции сделал, но на кнопке палка какая-то появилась не могу убрать, прям посередине

    • 7
    1066
      •  Команда Pandoge
    28 сен в 02:50

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

    По окончанию загрузки, при клике на файл, вам высветится ссылка на скачивание вида [attachment=123:archive.zip]

    Этот код вы копируете и вставляете либо в описание материала, либо в дополнительное поле. Сохраняете, чистите кэш если он есть, и любуетесь результатом.

    • 0
    766
      •  Гости
    27 сен в 23:07

    А как в новость то вставить эту кнопку?

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