DLE — монетизируем загруженные в новостях файлы через отдельный домен

DLE — монетизируем загруженные в новостях файлы через отдельный домен


Как много у вас загруженных файлов (приложений к постам) не считая картинок? У меня много и придумал способ их монетизировать! Решил ничего не выдумывать и при помощи простейшего JS подменять ссылку на скачивание файла с сайта на специальную ссылку.

При нажатии кнопки скачать будет подставляться промежуточная страница партнерской программы (а-ля укоротители ссылок) с рекламой. За переходы на такие страницы партнерка платит.

Перебрал кучу похожих партнерок, но подходящий инструмент смог найти только у одной — Q32.link. Она предоставляет готовый префикс безо всяких скриптов и мудреной настройки и позволяет автоматизировать сразу весь сайт.

Ссылка партнерки/моя ссылка


DLE — монетизируем загруженные в новостях файлы через отдельный домен


Для начала в настройках движка в разделе настроек загрузки файлов включите возможность скачивания файлов со стороннего сайта.

Найти ссылку на скачивание


DLE — монетизируем загруженные в новостях файлы через отдельный домен


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

https://devarts.pro/engine/download.php?id=84


Получить число



var link = $('.attachment_box a').attr('href'),
        number = Number(link.replace(/\D+/g,""));


В принципе, мы уже имеем все необходимое для использования стороннего домена и получения прибыли с переходов, но дабы не пугать народ, домен неплохо бы сделать красивее, как на скриншоте и передать ему название файла, ссылку на пост и его заголовок. Передавать будем методом GET и принимать с помощью PHP. Для этого при помощи JS получим их и сразу сформируем ссылку.

var mode = true;

if(mode){
    var link = $('.attachment_box a').attr('href'),
        number = Number(link.replace(/\D+/g,"")),
        out = 'https://q32.ru/39595/http://d.devarts.pro/?id=' + number,
        out = out + '&href=' + location.href,
        out = out + '&title=' + $('h1').text(),
        out = out + '&name=' + $('.attachment_box a b').text(); 

    $('.attachment_box a').attr('target', '_blank').attr('href', out);
}


<div class=\"attachment_box\">
	<a href=\"{$config['http_home_url']}engine/download.php?id={$row['id']}{$area}\" >Скачать <b>{$row['name']}</b></a>
	Размер: <span>{$size} </span> Скачиваний: <span>{$row['dcount']} </span>
</div>


Последняя строка OUT может отличаться. Название файла у меня хранится в ссылке и обернуто тегом B, пример выше (не attachment.tpl, a engine/modules/functions.php). Последней строкой мы меняем текущую ссылку на нашу. Дополнительно обернул код небольшим условием.

Переменная mode по умолчанию включена и скрипт выполняется сразу при загрузке страницы, но, если заменить true на false, то скрипт выше работать не будет. Эдакой хак дабы не комментировать весь код.

Готовая ссылка получится огромной длины, все кирилические символы будут перекодированы в сетевой адрес (% с буквой) и будет иметь следующий вид.

https://q32.ru/39595/http://d.devarts.pro/?id=84&href= ссылка_на_пост_на_сайте&title= название_поста_на_сайте&name=название_файла



Обработчик на стороннем домене



Теперь нам нужно принимать данные на стороннем домене и формировать текст. Создаем файл index.php, а .htaccess который будет подхватывать все 404 страницы вложу в архив.

<?php if($_GET['id'] && $_GET['name'] && $_GET['title'] && $_GET['href']){ ?>

	<p>Имя файла: <?= $_GET['name']; ?></p>
	<p>Источник: <a href="<?= $_GET['href']; ?>"><?= iconv("cp1251", "UTF-8", $_GET['title']); ?></a></p>
	<p>Скачать: <a href="https://devarts.pro/engine/download.php?id=<?= $_GET['id']; ?>">download</a></p>

<?php }else{ ?>

	<p>Возникла ошибка, параметры запроса неизвестны</p>
	<p>Попробуйте вернуться на <a href="https://devarts.pro">https://devarts.pro</a> и попробовать заново</p>

<?php } ?>


Проверяем наличие четырех GET параметров и выдаем код. Небольшой нюанс в строке с источником. Я уже давно перешел на юникод и кодировку UTF-8, а данный сайт использует кодировку windows-1251. Функция iconv преобразует cp1251 в utf-8. Если этого не делать, кирилические символы выводятся в виде ромбиков.

Если у вас и там, и там кодировка одинаковая, используйте вместо первой строки вторую в примере ниже.
<?= $_GET['href']; ?>"><?= iconv("cp1251", "UTF-8", $_GET['title']); ?>
<?= $_GET['href']; ?>"><?= $_GET['title']; ?>


Собственно и все. Протестировать, как это работает можно скачав готовый набор файлов ниже.

Скачать Clicks.zip Размер: 1,57 Kb Скачиваний: 40


Понравилась статья "DLE — монетизируем загруженные в новостях файлы через отдельный домен" из раздела PHP кодинг, JavaScript, Решения для DLE? Подпишись на RSS. Будь в курсе всего происходящего на сайте
Комментариев: 0 •  Просмотров: 255   Дата: 06-янв-2018, 14:23

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

Комментарии

b
i
u
s
|
left
center
right
|
emo
color
|
hide
quote
translit

© 2010-2017 devarts.pro v 7.0: flexyflat tpl Designed by devarts
Карта сайта HTMLКарта сайта XMLПравообладателям
Яндекс.Метрика