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

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

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Для того, чтобы добиться этого результата, нужно изучить исходники 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»

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

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