Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Adsense в середине статей (DLE)

Adsense в середине статей (DLE)


     28.08.2014    Все вопросы » Общие вопросы    8730

вопрос
Здравствуйте.
Возникла необходимость размещения adsense от Google в середине контента (статей).
Нашел реализацию через index.php и вставку в полную новость {adsense}, однако, на сайте огромное количество новостей и вручную данный процесс займет n-ое количество времени.
Возможно имеется какой-нибудь готовый хак, который способен реализовать задуманное?

Ответил: Roman.NMSK


как-то так... идем в /engine/modules/show.full.php
находим:
$tpl->set('{title}', $metatags['title']);

ниже добавляем код:

$dlina = strlen($row['full_story']);
if (($row['news_read'] < 150) || ($dlina < 1500)) {
    $text1 = $row['full_story'];
} else {
    $text1 = stripslashes($row['full_story']);
    $advert = "<!-- BANNER CODE HERE -->";
    $len = round(strlen($text1)/3);
    $pos = strpos($text1,'<br /><br />',$len);
    if ($pos!=0) $text1 = substr($text1, 0, $pos).$advert.substr($text1,$pos);
}

ниже находим:
$tpl->set('{full-story}', trim(stripslashes("<div id='news-id-".$row['id']."'>".stripslashes($row['full_story'])."</div>")));

коментируем и под ним добавляем наш вывод полного текста
$tpl->set('{full-story}', trim(stripslashes("<div id='news-id-".$row['id']."'>".$text1."</div>")));


по условию - если новость прочли больше 150 раз и длинна текста больше 1500, то после 1/3 текста добавляем код банера. применялось на коде для версии 7,5

23 комментария

DaivZ
Юзер

DaivZ - 28 августа 2014 23:36 -

Только платный и стоит 50 баксов)

Crashlabs
Юзер

Crashlabs - 28 августа 2014 23:39 -

А не поделитесь ссылочкой?

Crashlabs
Юзер

Crashlabs - 30 августа 2014 00:06 -

ROMAN.NMSK, очень интересная реализация, именно то, что и требовалось.
Однако, имеется для актуальной версии DLE ?

vitnet
PHP-developer

vitnet - 22 сентября 2014 22:47 -

        if(/* ($row['news_read'] < 150) || */(strlen($row['full_story']) < 1500) ) {
            $txt = $row['full_story'];
        } else {
            $txt = stripslashes($row['full_story']);
            $adv = '<div align="center"><a href="http://dle-news.ru/" target="_blank"><img src="/templates/Default/images/_banner_.gif" style="border: none;" alt=""></a></div>';
            $len = round (strlen($txt)/3);
            $pos = strpos($txt, '<br /><br />', $len);
            
            if( $pos != 0 ) $txt = substr($txt, 0, $pos) . $adv . substr($txt, $pos);
        }
        
        $tpl->set( '{full-story}', $txt);
        
        $tpl->set( '{short-story}', $row['short_story'] );

        //$tpl->set( '{full-story}', $row['full_story'] );

Crashlabs
Юзер

Crashlabs - 22 сентября 2014 23:06 -

Спасибо Вам огромное!

AndreyKAZ
Юзер

AndreyKAZ - 17 июня 2015 13:36 -

vitnet, спасибо огромное за код! Он отлично работает и на ДЛЕ 10.5 даже.
PHP знаю плохо, подскажите как можно в цикле искать второй по счету H2 в статье и вставлять код баннера выше него: 2й <H2> -> . adv . <H2>
Заранее спасибо!

dj-avtosh
PHP-developer

dj-avtosh - 13 ноября 2015 09:41 -

советую использовать метод dle_strlen

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

baseroad
Юзер

baseroad - 12 ноября 2015 21:25 -

***Комментарий удален***

baseroad
Юзер

baseroad - 12 ноября 2015 23:38 -

***Комментарий удален***

vitnet
PHP-developer

vitnet - 13 ноября 2015 00:04 -

***Комментарий удален***

baseroad
Юзер

baseroad - 13 ноября 2015 09:17 -

***Комментарий удален***

vitnet
PHP-developer

vitnet - 13 ноября 2015 20:54 -




чистим кеш, радуемся!

odrik
Юзер

odrik - 27 ноября 2015 03:05 -


После добавление изменений в файл engine/modules/show.full.php в некоторых статьях появились лишние символы!!!!!! Как от них избавиться????

baseroad
Юзер

baseroad - 30 ноября 2015 00:05 -

У меня вообще почему-то отказалось работать(((((

odrik
Юзер

odrik - 18 декабря 2015 12:37 -

Вот мой вариант DLE 10.6
Открыть файл engine/modules/show.full.php

найти
$tpl->set( '{full-story}', $row['full_story'] );

добавить ВЫШЕ
if( dle_strlen($row['full_story'], $config['charset']) > 150 ) {

            $txt = stripslashes($row['full_story']);
            $adv = '[banner_ЗДЕСЬ ИЗМЕНИТЬ НА ВАШ ВАРИАНТ]<br /><br />{banner_ЗДЕСЬ ИЗМЕНИТЬ НА ВАШ ВАРИАНТ}[/banner_ЗДЕСЬ ИЗМЕНИТЬ НА ВАШ ВАРИАНТ]';
            $pos = strpos($txt, '<br />', round(dle_strlen($txt, $config['charset'])/3));

            $part1 = substr($txt, 0, $pos);
            $part2 = substr($txt, $pos);
            $part2 = preg_replace( '/<br \/>/', $adv, $part2, 1 );

            if( $pos !== false ) $row['full_story'] = $part1.$part2;
        }

king
Юзер

king - 7 июня 2016 13:27 -

У меня на 10.2 не работает.
Теги баннера выводятся после статьи. (((

baseroad
Юзер

baseroad - 3 мая 2016 13:29 -

Цитата: vitnet
 Простой пример


 Пример с категориями

чистим кеш, радуемся!

На 11.0 метод лагает... После баннера, который вставился текст не выделяется

AndreyKAZ
Юзер

AndreyKAZ - 3 мая 2016 13:46 -

Ничего не лагает, работает на DLE 11.0 отлично.
Переделал хак под свои нужды, если в тексте символов более 1 800 (у меня статейник с лонг-ридами), то автоматом вставляется блок Адсенс сразу после 2-го тега H2 в статье. Код в show.full.php следующий:

    if (strlen($row['full_story']) < 1800) {
    $txt = $row['full_story'];
    } else {
    $txt = stripslashes($row['full_story']);
    $adv = '<div style="text-align:center;">{ADSENSE}</div>';
    $h1 = strpos($txt, '</h2>');
    $h2 = strpos($txt, '</h2>', $h1+5)+5;
        if( $h1 != 0 ) $txt = substr($txt, 0, $h2) . $adv . substr($txt, $h2);
            }
        $tpl->set( '{full-story}', $txt);


Вместо {ADSENSE} вставляете свой асинхронный код блока.

king
Юзер

king - 7 июня 2016 13:08 -

Ребята, можно ли как-то модернизировать код, чтобы отсчет был не по подзаголовкам h2, а по количеству параграфов <p>?
Например, после 5-го параграфа!?

odrik
Юзер

odrik - 29 января 2017 00:00 -

Для версии DLE 11.2 ребатают выше изложеные способы!!!!

odrik
Юзер

odrik - 29 января 2017 20:06 -

Вот рабочий вариант для DLE 11.2:

Открыть файл engine/modules/show.full.php

найти
$tpl->set( '{full-story}', $row['full_story'] );


добавить ВЫШЕ
if( dle_strlen($row['full_story'], $config['charset']) > 150 ) {

$txt = stripslashes($row['full_story']);
            $adv = '[banner_ЗДЕСЬ ИЗМЕНИТЬ НА ВАШ ВАРИАНТ]<br /><br />{banner_ЗДЕСЬ ИЗМЕНИТЬ НА ВАШ ВАРИАНТ}[/banner_ЗДЕСЬ ИЗМЕНИТЬ НА ВАШ ВАРИАНТ]';
            $pos = strpos($txt, '<br>', round(dle_strlen($txt, $config['charset'])/3));

            $part1 = substr($txt, 0, $pos);
            $part2 = substr($txt, $pos);
            $part2 = preg_replace( '/<br>/', $adv, $part2, 1 );

            if( $pos !== false ) $row['full_story'] = $part1.$part2;
        }

mariabest247
Юзер

mariabest247 - 12 февраля 2017 20:49 -

odrik, Ваш вариант отлично работает и на DLE 9.7 и DLE 11.2 Но есть одна проблемка. Когда-то добавляла статьи через программуZerber. Так вот в этих статьях не отображается реклама через этот код. Как это можно исправить, чтобы реклама начала показываться?

alexsajan
Юзер

alexsajan - 3 сентября 2018 03:36 -

Здравствуйте. Для DLE 13 не подскажете код вставки рекламы в статью?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх