Пишем плагин для joomla  xmapРанее на страницах блока была серия статей о написании своего компонента для популярной среди непрофессиональных разработчиков системы Joomla. Времени прошло достаточно, и вот ваш компонент уже оброс данными. Данных много, ведь помимо прочего мы еще подключили к компонентe парсер, для быстрого наполнения сайта. Однако поисковики очень не охотно индексируют ваш контент.

Информации в сети так много и обновляется она так часто, что поисковые системы просто не успевают проверять, обновилась ли ваша главная страница, или того хуже вложенная. В результате информация на сайте есть, но поисковик про нее узнает в последнюю очередь.

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

Поисковику достаточно раз в день проверять этот файл индексировать лишь измененные страницы. 

Среди joomla компонентов, которые создают sitemap, одним из лидеров дефакто является xmap. Сам xmap выводит в sitemap только ссылки размещенные в меню. Это не совсем удобно, когда мы хотим, чтобы в sitemap появились ссылки из нашего компонента. На помощь приходят плагины xmap. У этого компонента в загашнике есть несколько плагинов для популярных компонентов (k2,weblinks и т.д.) есть плагин и для стандартных материалов joomla.

Значит нужно написать плагин для xmap, который будет передавать компоненту все нужные нам ссылки. Вам потребуется всего два файла. 

com_{component_name}.xml
com_{component_name}.php

Содержимое xml файла такое

<?xml version="1.0" encoding="UTF-8"?>
<extension type="plugin" group="xmap" version="1.6" method="upgrade">
    <name>Xmap - JQuey Plugins</name>
    <author>Chupurnov Valeriy</author>
    <creationDate>26/05/2014</creationDate>
    <copyright>MIT</copyright>
    <authorEmail>chupurnov@gmail.com</authorEmail>
    <authorUrl>xdsoft.net</authorUrl>
    <version>1.0.1</version>
    <description>com_jquery_plugins</description>
    <files>
        <filename plugin="com_jquery_plugins">com_jquery_plugins.php</filename>
    </files>
</extension>

Это чисто декларативный файл и нужен он при установке. Конечно вы можете добавить туда настроек. Но это уже другая история.  Вообще, установка Joomla запчастей дело не хитрое, но иногда все может зависеть от настроек хостера. К примеру у некоторых хостеров может быть выключена стандартная библиотека для работы с архивами. Хороший хостинг предлагает bitte.net.ua. У них никаких неприятных сюрпризов с установкой Joomla компонентов не будет.

Файл php

<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
class xmap_com_jquery_plugins {
    static function prepareMenuItem($node, &$params) {
	$node->expandible = false;
    }
   
    static function getTree($xmap, $parent, &$params) {
      $params['cat_priority'] = 0.5;
      $params['cat_changefreq'] = 'weekly';
      $params['link_priority'] = 0.5;
      $params['link_changefreq'] = 'weekly';
      $items = array(); // в переменную $items нужно получить все необходимые элементы
      foreach ($items as $item) {
	$node = new stdclass;
	$node->id = $parent->id;
	$node->uid = $item['id'];
	$node->name = htmlspecialchars_decode($item['name']);
	$node->link = 'http://xdsoft.net/jquery-plugins/'.cpu($item['link']);
	$node->priority = $params['link_priority'];
	$node->changefreq = $params['link_changefreq'];
	$node->expandible = false;
	$node->modified = $item['lastupdate'];
	$xmap->printNode($node);
       }
    }
}

Вам нужно будет самостоятельно заполнить переменную $items, массивом элементов.

Для верной sitemap необходимо, чтобы в  $node->link был полный путь. Т.е. нужно прописать все, вплоть до домена.

В $node->modified последняя дата редактирования данного элемента в формате UNIXTIME.

Далее архивируем оба файла в zip архив и устанавливаем в joomla. После этого, необходимо активировать плагин в панели xmap или в менеджере плагинов (что на деле одно и тоже).

Менеджер плагинов xmap

Менеджер плагинов xmap

 

После этого идем по ссылке созданной карты и видим кучу новых ссылок.

Желаю удачи.

Оставлять комментарии могут только зарегистрированные пользователи