Размещение контекстной рекламы Google AdSense в статьях (контенте) Joomla

Существует несколько методов размещения контестной рекламы в Joomla.
Обычно для размещения на joomla-сайте Google Adsense используется стандартный пользовательский модуль, со вставленным в его тело кодом вызова объявлений при отключенном визуальном редакторе. Этот метод хорош при публикации рекламы на стандартных позициях модулей (в колонках, в хедере, футере), но с помощью него не удастся разместить контекстные объявления непосредственно в теле статьи (исключением является использование мамбота для публикации модуля внутри контента, но этот метод обернется засилием ненужных служебных тегов в статьях).

Как быть?

Гуглопоиск (яндекс по традиции показал себя поисковиком для домохозяек) подсказал подходящий вариант — мамбот размещения Google AdSense между анонсом и полным текстом статьи Joomla — InlineAds. Этот простой мамбот делает простую вещь — вставляет код объявления AdSense между анонсом и полным текстом joomla-статьи.

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

Также из этого простого мамбота можно сделать простейший, а именно убрать все настройки, например настройки форматирования (отступы и цвета бордеров, кому они сдались?), пример минимального кода:

<?php
defined( '_VALID_MOS' ) or die( 'Restricted access' );
$_MAMBOTS->registerFunction( 'onPrepareContent', 'botMosInlineAds' );
 
function botMosInlineAds( $published, &$row, &$params, $page=0 ) {
	global $database, $_MAMBOTS;
 
	if ( $params->get( 'intro_only' ) ) {
	    return;
	}
 
	if ( !isset($_MAMBOTS->_content_mambot_params['mosinlineads']) ) {
		// забираем из базы параметры мамбота
		$query = "SELECT params"
		. "\n FROM #__mambots"
		. "\n WHERE element = 'mosinlineads'"
		. "\n AND folder = 'content'"
		;
		$database->setQuery( $query );
		$database->loadObject($mambot);
 
		// сохраняем результат в переменной класса
		$_MAMBOTS->_content_mambot_params['mosinlineads'] = $mambot;
	}
 
	$mambot = $_MAMBOTS->_content_mambot_params['mosinlineads'];
	$botParams = new mosParameters( $mambot->params );
	$botParams->def( 'adscode' );
 
	$adscode_raw = $botParams->_params->adscode;
 
	// вырезаем <br /> теги, которые были добавлены функцией обработки текстовых полей (textareaHandling function)
	$adscode_raw = str_replace( "\r", "\n", $adscode_raw );
	$adscode_raw = str_replace( "\n<br />", "\n", $adscode_raw );
 
	if ( $adscode_raw != '' && $params->get( 'introtext' ) && $params->get( 'intro_only' ) == 0 ) {
		$row->text = $row->introtext . $adscode . ( $params->get( 'intro_only' ) ? '' : chr(13) . chr(13) . $row->fulltext);
	}
	return;
}
?>

Скачать мамбот размещения Google Adsense в статьях (материалах) Joomla InlineAds by WMDN.RU

Если у вас появилось желание сказать «спос» — поставьте, пожалуйста, ссылку на эту статью (либо давайте меняться) :) .

Комментариев: 12

  • 06.10.2010 Богдан:

    Здравствуйте.

    Скачал и установил плагин InlineAds. Настроил и опубликовал. Но после этого перестал работать плагин No External Links. Выключаю InlineAds — Вновь работает.

    Наверное конфликт в поочередности обработки контента. Подскажите, как решить проблему?

    • 06.10.2010 Кирилл:

      Привет Богдан. Местный мамбот InlineAds для joomla 1.0.X а no external links для joomla 1.5.X. Вы уверены что они стоят у вас на одном сайте?

      Если это так будем разбираться :) .

  • 07.10.2010 Богдан:

    Я использовал не местный InlineAds, а для версии 1,5 www.mantrag.com InlineAds Version 1.7

    • 11.10.2010 Кирилл:

      Что если попробовать поменять местами очередность их загрузки?

  • 12.10.2010 Богдан:

    подскажите, а как правильно изменить очередность их загрузки, потому что InlineAds — имеет тип content, а No External Links — тип system ?

  • 12.10.2010 Кирилл:

    Судя по порядку выполнения API Joomla первыми запускаются системные плагины, запуска плагинов группы content в этом списке нет вообще, но их запуск легко найти поиском по коду строки JPluginHelper::importPlugin('content');.

    Вывод: предположительно (с достаточно большой вероятностью) плагин InlineAds заново (после плагина No External Links) переписывает содержимое свойств $row->introtext и $row->fulltext объекта содержимого статьи и выдает их на странице. Идей как решить эту задачу пока нет.

  • 12.10.2010 Богдан:

    интересно, возможно ли просто переделать плагин InlineAds, что-бы он имел тип system, или No External Links что-бы он имел тип content?

    • 12.10.2010 Кирилл:

      Переделать InlineAds в системный конечно можно, но задачу это не решает, т.е. кто последний тот и главный :) . Пока идей нет.

  • 20.11.2010 Dmitry:

    Спасибо за мамбот, очень помог.

  • 13.02.2011 Йохан:

    Было дело решалось установкой мамбота mosauthoXTD там полей и настроек куча и первой строкой и последней и в полной новости и в предпросмотре.

  • 27.10.2011 Я:

    Как пользоваться , устанитла включила а что дальше?

    • 27.10.2011 Кирилл:

      Суть использования в том, что имея аккаунт в google.ru вы можете создать блок контекстной рекламы в adsense.google.com и вставить его код в настройки плагина и с удобством показывать контекстную рекламу от гугла в любом удобном месте статьи.


Добавление комментария:

 css.php