Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Как настроить скрипт вставки рекламы в тело статьи?

Как настроить скрипт вставки рекламы в тело статьи?


     13.01.2017    Все вопросы » Хаки    2995

вопрос
Вот сам скрипт
//Вставляем рекламу и содержание после 1-го абзаца
		if( dle_strlen($row['full_story'], $config['charset']) < 1000 ) {/* || $row['news_read'] < 150 ) { */ // По желанию можно добавить кол. просмотров
            $txt = $row['full_story']; // Если в полной новости кол. символов меньше 150, пропускаем
        } else {
            $txt = stripslashes($row['full_story']);
            $adv = '<noindex>Рекламный блок</noindex><br>
//Вставляем содержание
<div class="h3body" data-for="h3header">
<div class="h3header">
    <b>Содержание</b>
    <ul id="h3header" class="h3header">
    </ul>
</div>
</div>';
            $pos = strpos($txt, '<br><br>', round(dle_strlen($txt, $config['charset'])/3));
            
            if( $pos != 0 ) $txt = substr($txt, 0, $pos) . $adv . substr($txt, $pos);
        }

Скрипт вставляет рекламный блок хаотично в зависимости от количества символов в статье. Помогите сделать так, чтобы вставлял строго после 1-го или 2-го абзаца...
Заранее спасибо всем откликнувшимся!

Ответа пока нет


8 комментариев

Railway_Academy
Юзер

Railway_Academy - 16 января 2017 11:56 -

Ну помогите пожалуйста((

vitnet
PHP-developer

vitnet - 16 января 2017 16:21 -

1.0 Откройте файл engine/modules/functions.php

найдите
function check_allow_login($ip, $max) {


добавьте ВЫШЕ
function strposall($haystack, $needle) {
	$s = $i = 0;

	while (is_integer($i)) {
		$i = strpos($haystack, $needle, $s);

		if( is_integer($i) ) {
			$aStrPos[] = $i;
			$s = $i+strlen($needle);
		}
	}
	if( isset($aStrPos) ) {
		return $aStrPos;
	} else {
		return false;
	}
}

2.0 Откройте файл engine/modules/show.full.php

найдите
		$tpl->set( '{short-story}', $row['short_story'] );

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

замените на
		// Вставляем рекламу и содержание после абзаца
		$needle = 1; // после какого абзаца вставлять (0 - 10)
		
		if( dle_strlen($row['full_story'], $config['charset']) > 1000 ) {
			$full_story = stripslashes($row['full_story']);
			$advertisement = '<br /><noindex><h3>Рекламный блок</h3></noindex><br />
<div class="h3body" data-for="h3header">
<div class="h3header">
    <b>Содержание</b>
    <ul id="h3header" class="h3header">
    </ul>
</div>
</div>';
			$pos = strposall($full_story, '<br /><br />');
			$end = count($pos);
			$end = end($end);

			if( is_array($pos) && isset($pos[$needle]) ) {
				$full_story = dle_substr($full_story, 0, $pos[$needle], $config['charset']) . $advertisement . substr($full_story, $end);
			}
			
			$row['full_story'] = $full_story;
		}
		// Вставляем рекламу и содержание после абзаца

		$tpl->set( '{short-story}', $row['short_story'] );

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

Railway_Academy
Юзер

Railway_Academy - 17 января 2017 11:28 -

Боже, здоровья Вашим рукам!))) Еще раз огромнейшее спасибо)
А что нужно добавить с прошлой версии скрипта, чтобы и в середине статьи была реклама?

Railway_Academy
Юзер

Railway_Academy - 17 января 2017 23:27 -

vitnet,
Не работает(((( Что может быть не так?(

alexsajan
Юзер

alexsajan - 19 августа 2018 07:15 -

Подскажите как вставить рекламу после заголовка h3 DLE 13?

WebMen
Юзер

WebMen - 28 июля 2020 14:38 -

А можно вариант для DLE 14 ? Этот скрипт до 13+ версии
И если можно чтобы выводился после заголовка. Или количества текста. Так как 1000 или 150 он выводит в новости всего 1 блок рекламы. И то в неожиданном месте. Лучше бы после Заголовка или специального места / Дива.
Полз.
Заранее спасибо.

WebMen
Юзер

WebMen - 28 июля 2020 20:30 -

Ну рай мой вопрос в новой теме удалили. буду держать его в топе комментариев. Чтобы люди знали что я жду ответ

LazyDev
PHP-developer

LazyDev - 29 июля 2020 12:22 -

WebMen, всё что нужно было сделать код обернуть в тег
[code]

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

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

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

наверх