Артём Мáлков

Вставляем рекламу после n-й краткой новости в DLE

9 июл6 комм

Недавно на одном из форумов прочитал, что в Google Adsense добавили нативную рекламу – рекламу, которая гармонично вписывается в контент вашего сайта и при этом хорошо воспринимается пользователями.

Поэтому, решив установить один из рекламных блоков на свой сайт в DataLife Engine, я стал думать, как же это можно хорошо реализовать. Ознакомился с идеями на других сайтах. Их было несколько – либо обыграть все это через тег custom, или же воспользоваться стандартными рекламными инструментами, и мне это не совсем понравилось.

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

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

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

$global_news_count ++;

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

// Рекламный блок

if($global_news_count == 3 || $global_news_count == 5) {

	$adv = <<<HTML

		Код рекламы

HTML;
	
} else {

	$adv = "";
	
}

«3» и «5» – здесь порядковый номер материала на странице (!) – не путайте с ID новости, а вместо «Код рекламы» вставьте полученный вами код рекламного блока.

Если вы хотите добавить еще несколько порядковых номеров – добавьте код по аналогии:

$global_news_count  == NUMB

Где «NUMB» - порядковый номер новости.

3. В этом же файле найдите строку, содержащую:

$tpl->compile( 'content' ); 

Выше нее вставьте:

$tpl->set("{adv}", $adv);

Обратите внимание, что таких строк, в зависимости от версии движка, может быть несколько – вам же необходимо найти первое совпадение.

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

4. Откройте файл в папке /templates/название темы, отвечающий за краткий вид новостей (по умолчанию – файл shortstory.tpl). И если вы хотите, чтобы рекламный блок шел после указанных материалов, вставьте в самый конец, а если перед – то в самых верх всего кода следующий тег:

{adv}

Также сохраните изменения и отправьте файл на сайт.

5. Завершающим этапом будет очистка кэша на сайте. О том, как это сделать, читайте в данной статье.

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

Рекомендуем к просмотру
Что делать, если на сайте не отображаются рекламные материалы от Google AdSense?
Статьи и советы
Выводим информацию о новости в файле (attachment) в DLE
Хаки
Все способы убрать рекламу на сайте uCoz
Статьи и советы
6
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    1067
      •  Команда Pandoge
    17 июн в 14:15

    oxideome, зависит от кода. Думаю что экранизация будет не лишней. А вообще, чтобы на это не отвлекаться, лучше воспользоваться этой статьей - https://www.pandoge.com/stati_i_sovety/kak-vstavit-html-css-i-js-v-php-kod

    • 1
    766
      •  Гости
    17 июн в 06:36

    Нужно ли добавлять обратный слеш перед скобкам " " в коде рекламного блока перед вставкой?

    • 6
    1067
      •  Команда Pandoge
    31 окт в 22:02

    Mendel, проблема в чем то другом - напишите нам в ВК, обязательно поможем.

    • 1
    766
      •  Гости
    31 окт в 21:33

    Здравствуйте, хотел по вашему совету из этой статьи вставить объявление между краткими новостями. Сделал все как указанно в статье, а оно мне ошибку выдает при переходе на сайт:

    Parse error: syntax error, unexpected '}' in /home/mende122/domains/and-playmarket.ru/public_html/engine/modules/show.short.php on line 21 Call Stack: 0.0010 290368 1. {main}() /home/mende122/domains/and-playmarket.ru/public_html/index.php:0 0.0012 439816 2. require_once('/home/mende122/domains/and-playmarket.ru/public_html/engine/init.php') /home/mende122/domains/and-playmarket.ru/public_html/index.php:44 0.0088 1869960 3. require_once('/home/mende122/domains/and-playmarket.ru/public_html/engine/engine.php') /home/mende122/domains/and-playmarket.ru/public_html/engine/init.php:664

    у меня DLE 11, может быть причина в этом что код не работает? как решить проблему данную?

    • 6
    1067
      •  Команда Pandoge
    12 июл в 14:39

    Дмитрий, как вариант. Статья по этому тегу уже есть на сайте - https://www.pandoge.com/stati_i_sovety/vyvod-materialov-v-dle-nachinaya-s-n-go-nomera

    • 3
    766
      •  Гости
    12 июл в 13:54

    Для файл shortstory.tpl проще воспользоваться тегом

    [newscount=x] текст [/newscount]

    Выводит текст указанный в тегах если показывается X новость, где X это число показываемой на странице новости.

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