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

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


     28.08.2014    Общие вопросы    2751

вопрос
Здравствуйте.
Возникла необходимость размещения 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

Комментарии пользователей (19)

DaivZ
2

283 | 175

DaivZ - 28 августа 2014 23:36 - Юзер

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

Crashlabs
25 | 2

Crashlabs - 28 августа 2014 23:39 - Юзер

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

Crashlabs
25 | 2

Crashlabs - 30 августа 2014 00:06 - Юзер

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

vitnet
218

2171 | 930

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
25 | 2

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

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

AndreyKAZ
16 | 1

AndreyKAZ - 17 июня 2015 13:36 - Юзер

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

dj-avtosh
39

1479 | 390

dj-avtosh - 13 ноября 2015 09:41 - шашлычник

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

skype: elhan.isaev

baseroad
4

280 | 7

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

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

baseroad
4

280 | 7

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

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

vitnet
218

2171 | 930

vitnet - 13 ноября 2015 00:04 - Эксперт

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

baseroad
4

280 | 7

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

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

vitnet
218

2171 | 930

vitnet - 13 ноября 2015 20:54 - Эксперт




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

odrik
2 | 1

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


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

baseroad
4

280 | 7

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

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

odrik
2 | 1

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
2

75 | 13

king - 7 июня 2016 13:27 - Юзер

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

baseroad
4

280 | 7

baseroad - 3 мая 2016 13:29 - Юзер

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


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

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

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

AndreyKAZ
16 | 1

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
2

75 | 13

king - 7 июня 2016 13:08 - Юзер

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

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

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