Вставка рекламного объявления Google AdSense между вступлением и основной частью статьи в Joomla

Посмотрев массу статей в интернете о том, как вставить рекламное объявление Google AdSense я так и не нашёл способа, который напрашивается сам собой. Это ставка рекламного объявления Google AdSense между вступлением и основной частью статьи в Joomla на место разделителя <hr id="system-readmore" />, чтобы реклама располагалась только при просмотре полного текста статьи между вступительной частью и основным текстом статьи на всех страницах сайта.



Для того, чтобы добиться этого результата, нужно изучить исходники Joomla и найти то место, где происходит вывод статьи пользователю.

База данных Joomla

Для того, чтобы убедиться в том, что это возможно достаточно взглянуть на то, как хранится информация о статье в базе данных.

Статьи Joomla хранятся в таблице _content и вступительная часть статьи хранится в поле introtext, а основная часть в поле fulltext.

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

Создаём текстовый файл для хранения текста объявления Google AdSense

Для того, чтобы было

  • проще работать с объявлениями Google AdSense,
  • вносить изменения, если потребуется,
  • не перегружать правками исходные файлы Joomla,

создадим файл с текстом размещения рекламного блока, который выдаёт AdSense для размещения на страницах сайта.

Я разместил этот код в файле GaD-inarticle-up.php (чтобы было проще понять формат объявления) в папке шаблона Protostar

/templates/protostar/includes/GaD-inarticle-up.php

чтобы проще было найти все файлы с объявлениями и чтобы эти файлы были доступны для внесения изменений из админки Joomla в файлах шаблона, и не приходилось использовать другие инструменты для доступа к ним.

Сам файл GaD-inarticle-up.php содержит только тот код, который выдаёт AdSense, хотя в него можно также поместить HTML-разметку. Например, чтобы отцентрировать выдачу рекламного объявления.

Правка файла view.html.php движка Joomla

Практически всё готово! Осталось только вставить две строчки в один файл Joomla. Файл находится тут:

/components/com_content/views/article/view.html.php

Вносить изменения нужно в районе 168-й строки:

Было:


		// NOTE: The following code (usually) sets the text to contain the fulltext, but it is the
		// responsibility of the layout to check 'access-view' and only use "introtext" for guests
		if ($item->params->get('show_intro', '1') == '1')
		{
			$item->text = $item->introtext . ' ' . $item->fulltext;
		}
		elseif ($item->fulltext)
		{
			$item->text = $item->fulltext;
		}

Стало:


		// читаем код рекламного блока в переменную $AdSense
		$AdSense = file_get_contents('./templates/protostar/includes/GaD-inarticle-up.php');

		// NOTE: The following code (usually) sets the text to contain the fulltext, but it is the
		// responsibility of the layout to check 'access-view' and only use "introtext" for guests
		if ($item->params->get('show_intro', '1') == '1')
		{
			$item->text = $item->introtext . $AdSense . $item->fulltext; // выводим переменную $AdSense сразу после introtext и до fulltext
		}
		elseif ($item->fulltext)
		{
			$item->text = $item->fulltext;
		}
		else

Пояснения изменений в коде Joomla для вставки объявления Google AdSense во всех статьях

Как видно в коде:

добавлена строка (165) для того, чтобы прочитать код AdSense из файла GaD-inarticle-up.php в переменную $AdSense;

а в строке 171 (бывшая 168-я) мы вставляем этот код в виде переменной $AdSense между introtext и fulltext.

Всё! Работает! =D

P.S. Продолжение! Новая статья: «Вставка рекламного объявления Google AdSense сразу после статьи в Joomla»

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню