Получение ТиЦ и PR

Материал из Umicms
Версия от 11:13, 5 июня 2013; Mad grant (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Актуально для версии 2.9

Для того, чтобы получить для домена его ТиЦ и PageRank, например с выводом на сайте можно написать кастомный макрос. Логично будет разместить его в модуле SEO. Для этого в файле classes/modules/seo/__custom.php напишем такой скрипт:

<?php
 abstract class __custom_seo {
  //TODO: Write your macroses here
  
   public function getPR($template = "default", $_url = false) {
   $array_res = array();
   list ($sTemplate, $array_res) = def_module::loadTemplates('/seo/'.$template, 'rank');
   $url = "http://bar-navig.yandex.ru/u?ver=2&url=".urlencode("http://".$_url)."&show=1";
   $CYprContent = @file_get_contents( $url );
   if ($CYprContent) {
    preg_match( "/<tcy rang=\"(.*)\" value=\"(.*)\"\/>/isU", $CYprContent, $cy );
    	$array_res['cy'] = $cy[2];$array_res['pr'] = $cy[1] ;
   } else {
	return "Ошибка при получении запроса";
	}
   return def_module::ParseTemplate($sTemplate, $array_res);
   }
 }; 
?>

Теперь получить данные можно по запросу udata://seo/getPR//domain.ru В случае если используется tpl шаблонизатор в папке tpls создаём папку seo с файлом default.tpl внутри. Содержание файла примерно следующее -

<?php

$FORMS = array();

$FORMS['rank'] = <<<END
<p> PageRank - %pr%</p>
<p> ТиЦ - %cy%</p>
END;

?>

И в теперь в нужном месте в нужном шаблоне вызываем макрос как %seo getPR('default', 'domain.ru')%