DLE - Хак attachment. Изменяем стандартный attachment

DLE - Хак attachment. Изменяем стандартный attachment


DLE - Хак attachment. Изменяем стандартный attachment


Для версий DLE, где появился дополнительный файл (где-то в районе 11 версии) шаблона attachment.tpl просто заменяем его содержимое на код из комментария #13

Стильный и красивый аттач. Полностью на CSS3 и вообще без картинок. Небольшой js-скриптик для вывода всплывающего блока, который обеспечивает сохранения более-менее точной статистики по скачиваниям т.к. отсутствуют случайные клики. Обилие стилей: box-shadow, text-shadow, border-radius.

Установка хака
1. Открыть 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>";


2. Заменить на:


//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;}


4. Вариант без появляющегося окна, т.е. прямое скачивание при клике:
Выполнить пункт 1, но вместо 2-го пункта, вставить код ниже:


$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>
";


DLE - Хак attachment. Изменяем стандартный attachment



Скачать artemmian_ru-attachment_hack_by_artemmian.rar Размер: 1,41 Kb Скачиваний: 232
Понравилась статья "DLE - Хак attachment. Изменяем стандартный attachment" из раздела Решения для DLE, Мои эксперименты? Подпишись на RSS. Будь в курсе всего происходящего на сайте
Комментариев: 13 •  Просмотров: 18253   Дата: 20-мая-2013, 03:34

Похожие статьи

Комментарии

#1 Seriy   

Гости
Подскажите новичку , ато я никак не могу разобраться. Никогда прежде не ставил ( неменял ) вид атача . Все сделал как у вас в инструкции ... но никакого результата, т.е. Я просто выполнил пункт 1, 2 , 3 ... Дальше иду в админку , добавляю новость, там где вставить ссылку как и обычно вставляю ссылку и пишу скачать ... ну и эфекта никакого .... все как и было, или еще какието доп. поля нужно делать или что- еще сделать или как правильно вставлять ссылку на скачивание, чтоб все было красиво
(25 мая 2013 11:10) • цитировать • •

admin
Цитата: Seriy
Подскажите новичку , ато я никак не могу разобраться. Никогда прежде не ставил ( неменял ) вид атача . Все сделал как у вас в инструкции ... но никакого результата, т.е. Я просто выполнил пункт 1, 2 , 3 ... Дальше иду в админку , добавляю новость, там где вставить ссылку как и обычно вставляю ссылку и пишу скачать ... ну и эфекта никакого .... все как и было, или еще какието доп. поля нужно делать или что- еще сделать или как правильно вставлять ссылку на скачивание, чтоб все было красиво


Возможно что то не так сделали. Никаких дополнительных полей не нужно. Помочь вслепую я не смогу. Нужно взглянуть на ваш сайт

Цитата: Seriy
там где вставить ссылку как и обычно вставляю ссылку и пишу скачать ...


Этот код не для ссылок, а для [attachment=X], т.е. для загруженных на сайт файлов и выведеных в новость

(25 мая 2013 13:33) • цитировать • •
#3 Seriy   

Гости
Спасиб за ответ, а можете еще подсказать как сделать у себя кнопку как у вас CTRL + Enter - для ошибок в тексте , dle 9.8
(25 мая 2013 21:04) • цитировать • •

admin
Цитата: Seriy
Спасиб за ответ, а можете еще подсказать как сделать у себя кнопку как у вас CTRL + Enter - для ошибок в тексте , dle 9.8


Такая штука уже встроена в дле, а сбоку у меня обычная картинка.
(25 мая 2013 22:11) • цитировать • •

Гости
Спасибо за статью
(24 июня 2013 10:35) • цитировать • •

admin
Цитата: AntetuebyBype
Спасибо за статью


Незачто! Пользуйтесь на здоровье.
(24 июня 2013 14:48) • цитировать • •
#7 good1   

Гости
у меня почему то не работает и все сделал правельно,
стало как стандартный аттач
(2 июля 2013 13:34) • цитировать • •
#8 good1   

Гости
пробовал на денвере работает нормально когда ставлю на сайт не работает что делать помоги пж
(6 июля 2013 19:13) • цитировать • •

admin
Цитата: good1
пробовал на денвере работает нормально когда ставлю на сайт не работает что делать помоги пж


А подробнее можно. Быть может css не добавили
(16 июля 2013 11:33) • цитировать • •
#10 Rie   

Гости
Your answer shows real inceeligentl.
(24 июля 2013 22:39) • цитировать • •

Гости
Базара нет, все работает как часы, малость CSS заточил под себя размеры и т.п. Но функционал отличный! Респект и уважуха тому Вебмастеру кто написал, мне бы с ним поработать... если что пиши xatabich10 есть заказы...

xatabich10,
xatabich10 это скайп ))) wink

И еще.. хотел бы организовать во всплывающем окне таймер. Допустим чел заходит кликает скачать... тут вышло это окно, но вместо клавиши скачать идет отсчет времени до начала скачивания, допустим 20 сек... Буду пробовать сам, но если что автор напиши в скайп мне... куплю работы...
(20 сентября 2013 02:40) • цитировать • •
#12 Twoface   

Гости
Цитата: artemmian
Цитата: AntetuebyBype
Спасибо за статью


Незачто! Пользуйтесь на здоровье.


Здравствуйте, прошу у Вас помощи, Ваш хак работает на версии 11.1, но к сожалению не показывает размер файла, помогите пожалуйста, как сделать чтобы размер файла тоже выводился.
Спасибо.
(4 октября 2016 09:26) • цитировать • •

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


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

Все гениально и просто. Используйте файл шаблона attachment.tpl :)

Замените его содержимое на:

[allow-download]
<div align=\"center\">
<hr class=\"att_hr\"/>
<div id=\"attachment\"><a href="{link}" >Скачать <b>{name}</b></a></div>
<div id=\"attachment2\">Размер: <span>[count] [{size}] </span> Скачиваний: <span>{count} [/count]</span></div>
</div>
[/allow-download]

[not-allow-download]<span class="attachment">У вас нет доступа к скачиванию файлов с нашего сервера</span>[/not-allow-download]

Не уверен насчет квадратных скобок вокруг {size}, возможно, простой элемент дизайна! Если будут мешать, просто уберите.

Код данного аттача уже давно пора переписать на современный лад, но и так он вполне себе рабочий :)
(15 октября 2016 23:17) • цитировать • •
b
i
u
s
|
left
center
right
|
emo
color
|
hide
quote
translit
© 2010-2015 artemmian.ru v 7.0: flexyflat tpl Designed by artstudios
Карта сайта HTMLКарта сайта XMLПравообладателям
Яндекс.Метрика