Полностью на CSS3 без картинок скрипт для вывод кнопки на скачивания файлов в DLE.
В комплекте возможен вариант с установкой модального окна и подтверждением скачивания (исключает искажение статистики со случайными нажатиями).
Начиная примерно с версии DLE 11.0 в шаблон был введен новый файл — attachment.tpl, который убирает необходимость в данных манипуляциях. Для него просто заменяем его содержимое на код из комментария #13
Установка скрипта
Открыть engine/modules/function.php и где-то на 650-й строке найти следующий код:
$replace_1[] = "<span class=\"attachment\"><a href=\"{$config['http_home_url']}engine/download.php?id={$row['id']}{$area}\" >{$row['name']}</a> [{$size}] ({$lang['att_dcount']} {$row['dcount']})</span>";
$replace_2[] = "<span class=\"attachment\"><a href=\"{$config['http_home_url']}engine/download.php?id={$row['id']}{$area}\" >\\1</a> [{$size}] ({$lang['att_dcount']} {$row['dcount']})</span>";
Заменить на:
//attachment
$replace_1[] = "
<div align=\"center\">
<hr class=\"att_hr\"/>
<div class=\"DownLoadWindow\"><div id=\"attachment\"><a href=\"#\" onclick=\"showDownLoad(); return false;\">Скачать <b>{$row['name']}</b></a></div></div>
<div id=\"attachment2\">Размер: <span>{$size} </span> Скачиваний: <span>{$row['dcount']} </span></div>
</div>
<div id=\"DownLoadWindow\" style=\"display:none;\" ><div id=\"attachment3\"> <a href=\"{$config['http_home_url']}engine/download.php?id={$row['id']}{$area}\" >cкачать</div>
<script type=\"text/javascript\">
function showDownLoad() {
$(function(){
$('#DownLoadWindow').dialog({
autoOpen: true,
autoClose: true,
width: 520,
buttons: {
\"Закрыть окно\" : function() {
$(this).dialog(\"close\");
},
}
});
});
}
</script>";
$replace_2[] = "
<div align=\"center\">
<hr class=\"att_hr\"/>
<div class=\"DownLoadWindow\">
<div id=\"attachment\">
<a href=\"#\" onclick=\"showDownLoad(); return false;\">Скачать <b>{$row['name']}</b></a>
</div></div>
<div id=\"attachment2\">
Размер: <span>{$size} </span> Скачиваний: <span>{$row['dcount']} </span>
</div>
</div>
<div id=\"DownLoadWindow\" style=\"display:none;\" >
<div id=\"attachment3\"> <a href=\"{$config['http_home_url']}engine/download.php?id={$row['id']}{$area}\" >cкачать</div>
</div>
<script type=\"text/javascript\">
function showDownLoad() {
$(function(){
$('#DownLoadWindow').dialog({
autoOpen: true,
autoClose: true,
width: 520,
buttons: {
\"Закрыть окно\" : function() {
$(this).dialog(\"close\");
},
}
});
});
}
</script>";
//end attachment
3. Открыть файл стилей CSS в шаблоне и вставить:
/*---Ссылка на скачивание прикрепленного файла---*/
/*---Полоса с названием файла---*/
#attachment {
text-align:center;
border:1px solid #000;
border-radius:3px;
background: #013027;
color: #808080;
width:500px;
padding:2px;
float:center;
min-height:20px;
box-shadow: 1px 1px 2px #000;
}
#attachment a {color: #ccc; text-shadow: 5px 5px 10px #fff; }
/*---Показатели файла (размер и скачано)---*/
#attachment2{
text-align:center;
text-shadow: 5px 5px 5px #013027;
color:#000;
margin-top:5px;
font-weight:700;
}
#attachment2 span{color:#ff0000;}
/*---Кнопка на скачивание в всплывшем окне---*/
#attachment3 {
text-align:center;
border:1px solid #000;
border-radius:3px;
background: #013027;
padding:2px;
float:center;
box-shadow: 1px 1px 2px #000;
margin:7px 0px 0px 0px;
}
#attachment3 a {font:40px bold; color: #ccc; text-shadow: 5px 5px 10px #fff; }
.att_hr{width:300px; margin:18px 0px;}
Вариант с модальным окном в какой-то момент перестал работать. Разбираться особого желания нет, да и с DLE я уже давно ушел, поэтому использую простую кнопку. Вместо огромного кода чуть выше, который мы заменяли в первом шаге. используем следующий укороченный вариант:
$replace_1[] = "
<div align=\"center\">
<hr class=\"att_hr\"/>
<div id=\"attachment\"><a href=\"{$config['http_home_url']}engine/download.php?id={$row['id']}{$area}\" >Скачать <b>{$row['name']}</b></a></div>
<div id=\"attachment2\">Размер: <span>{$size} </span> Скачиваний: <span>{$row['dcount']} </span></div>
</div>
";
$replace_2[] = "
<div align=\"center\">
<hr class=\"att_hr\"/>
<div id=\"attachment\"><a href=\"{$config['http_home_url']}engine/download.php?id={$row['id']}{$area}\" >Скачать <b>{$row['name']}</b></a></div>
<div id=\"attachment2\">Размер: <span>{$size} </span> Скачиваний: <span>{$row['dcount']} </span></div>
</div>
";
Для тех, кто так и не разобрался в особенностях скрипта attachment.tpl, данный скрипт используется для вывода прикрепленного к записи файла на скачивание. Загружается и публикуется в редакторе статьи. Более современный в стиле Material Design шаблон и его место в редакторе статьи на скриншоте ниже
Подскажите новичку , ато я никак не могу разобраться. Никогда прежде не ставил ( неменял ) вид атача . Все сделал как у вас в инструкции … но никакого результата, т.е. Я просто выполнил пункт 1, 2 , 3 … Дальше иду в админку , добавляю новость, там где вставить ссылку как и обычно вставляю ссылку и пишу скачать … ну и эфекта никакого …. все как и было, или еще какието доп. поля нужно делать или что- еще сделать или как правильно вставлять ссылку на скачивание, чтоб все было красиво
Возможно что то не так сделали. Никаких дополнительных полей не нужно. Помочь вслепую я не смогу. Нужно взглянуть на ваш сайт
Этот код не для ссылок, а для [attachment=X], т.е. для загруженных на сайт файлов и выведеных в новость
Спасиб за ответ, а можете еще подсказать как сделать у себя кнопку как у вас CTRL + Enter – для ошибок в тексте , dle 9.8
Такая штука уже встроена в дле, а сбоку у меня обычная картинка.
Спасибо за статью
Незачто! Пользуйтесь на здоровье.
у меня почему то не работает и все сделал правельно,
стало как стандартный аттач
пробовал на денвере работает нормально когда ставлю на сайт не работает что делать помоги пж
А подробнее можно. Быть может css не добавили
Your answer shows real inceeligentl.
Базара нет, все работает как часы, малость CSS заточил под себя размеры и т.п. Но функционал отличный! Респект и уважуха тому Вебмастеру кто написал, мне бы с ним поработать… если что пиши xatabich10 есть заказы…
xatabich10,
xatabich10 это скайп )))
И еще.. хотел бы организовать во всплывающем окне таймер. Допустим чел заходит кликает скачать… тут вышло это окно, но вместо клавиши скачать идет отсчет времени до начала скачивания, допустим 20 сек… Буду пробовать сам, но если что автор напиши в скайп мне… куплю работы…
Незачто! Пользуйтесь на здоровье.
Здравствуйте, прошу у Вас помощи, Ваш хак работает на версии 11.1, но к сожалению не показывает размер файла, помогите пожалуйста, как сделать чтобы размер файла тоже выводился.
Спасибо.
Спасибо.
Я ушел с DLE, но попробую разобраться. Скорей всего изменилась переменная, отвечающая за размер файла
Все гениально и просто. Используйте файл шаблона attachment.tpl 🙂
Замените его содержимое на:
Не уверен насчет квадратных скобок вокруг {size}, возможно, простой элемент дизайна! Если будут мешать, просто уберите.
Код данного аттача уже давно пора переписать на современный лад, но и так он вполне себе рабочий 🙂
На версии ДЛЕ 12,0 работает 100% но нет размера, то есть не показывает.
На столь поздних версиях все значительно проще т.к. в папку с шаблоном добавлен файл attachment.tpl
Прочитайте мой комментарий чуть выше #13
А на 13,0 есть еще и посмотреть онлайн.