Новости Joomla

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

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

0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 520 Просмотров
*

pavelrer

  • Давно я тут
  • 615
  • 10 / 2
Код
<?php	defined('_JEXEC') or die;
// -----------------------------------------------------------------------------------------------
$app_token = 'AgAAAA-Тута-ваш-токен-VE98EUWM';
// -----------------------------------------------------------------------------------------------
// Создать приложение и получить токен тут - https://oauth.yandex.ru/ (! Время жизни токена: Не менее, чем 180 дней !)
// Получаем токен вручную из url https://oauth.yandex.ru/authorize?response_type=token&client_id=<идентификатор приложения>
// -----------------------------------------------------------------------------------------------
// -- Редакция Шевченко.П для JoomlaForum
// -----------------------------------------------------------------------------------------------
// $url_quota = 'https://api.webmaster.yandex.net/v4/user/.$rty[userId]./hosts/.$rty[hostId]./recrawl/quota';
// $result_url_quota = getResponseYANDEX($url_quota, $headers);
//  Cмысл прверять квоту просто нет лишний запрос.
// -----------------------------------------------------------------------------------------------
function yandex_add_url($set_add_url_yandex)
{
// -----------------------------------------------------------------------------------------------
$app_token = 'AgAAAA-Тута-ваш-токен-VE98EUWM';
// -----------------------------------------------------------------------------------------------
$rty = user_id_host_id($app_token);
// Можно выполнить один раз для нескольких идущих друг за другом запросов, или записать эти значения в базу.

// $set_add_url_yandex = 'https://ваш-домен/страница';
$set_xml = '<Data><url>'.$set_add_url_yandex.'</url></Data>';
$url_set_add_url_yandex = 'https://api.webmaster.yandex.net/v4/user/'.$rty[userId].'/hosts/'.$rty[hostId].'/recrawl/queue/';
$headers = array('Authorization: OAuth ' . $app_token, 'Content-Type: application/xml; charset=utf-8', 'Content-Length: ' . strlen($set_xml));
$result_set_add_url_yandex = getResponseYANDEX($url_set_add_url_yandex, $headers, $set_xml);
if ($result_userId[code] == 200)
{
// Все хорошо - отправили на переобход
}
else
{
$string_to_log = 'call() Error code(hostId) = '.$result_set_add_url_yandex[code].'. Response : '.$result_set_add_url_yandex[response];
add_log($string_to_log);
}
}
// -----------------------------------------------------------------------------------------------
function user_id_host_id($app_token)
{
$headers = array('Authorization: OAuth ' . $app_token);
$y_id = array();

//  Узнаем user_id
$url_userId = 'https://api.webmaster.yandex.net/v4/user/';
$result_userId = getResponseYANDEX($url_userId, $headers);
if ($result_userId[code] == 200)
{   
$userId_ar = json_decode($result_userId[response]);
$userId = $userId_ar->user_id;
$y_id[userId] = $userId;

//  Узнаем host_id
$url_hostId = '[url=https://api.webmaster.yandex.net/v4/user/]https://api.webmaster.yandex.net/v4/user/[/url]'.$userId.'/hosts/';
$result_hostId = getResponseYANDEX($url_hostId, $headers);
// Если в вебмастере несколько сайтов, не будет работать если не первый.
if ($result_hostId[code] == 200)
{
$hostId_ar = json_decode($result_hostId[response]);
$hostId_ar = $hostId_ar->hosts;
$hostId = $hostId_ar[0]->host_id;
$y_id[hostId] = $hostId;
}
else
{
$string_to_log = 'call() Error code(hostId) = '.$result_hostId[code].'. Response : '.$result_hostId[response];
// Пишем в лог
add_log($string_to_log);
}
}
else
{
$string_to_log = 'Error code(userId) = '.$result_userId[code].'. Response : '.$result_userId[response];
// Пишем в лог
add_log($string_to_log);
}
return $y_id;
}
// -----------------------------------------------------------------------------------------------
function add_log($string_to_log)
{
// -----------------------------------------------------------------------------------------------
$file_log_path = '/home/admin/web/ваш-домен/public_html/templates/rs_form/yandex_add_url.log';
// -----------------------------------------------------------------------------------------------
$fp = fopen($file_log_path, 'a+');
fwrite($fp, $string_to_log."\r\n");
fclose($fp);
}
// -----------------------------------------------------------------------------------------------
function getResponseYANDEX($url, $headers = array(), $fields = NULL)
{
$headers[] = 'Content-type: application/x-www-form-urlencoded';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if ($fields) {
if (is_array($fields)) {
$post_arr = array();
foreach ($fields as $key => $value) {
$post_arr[] = $key . "=" . $value;
}
$data = implode('&', $post_arr);
} else {
$data = $fields;
}
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$response = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
return array(
'code' => $code,
'response' => $response
);
}
// -----------------------------------------------------------------------------------------------
?>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вставка Яндекс captcha

Автор Kadadzher

Ответов: 0
Просмотров: 191
Последний ответ 16.10.2025, 11:19:32
от Kadadzher
Множество несуществующих ссылок при обходе сайта роботом Яндекс

Автор goga_pgasovav

Ответов: 7
Просмотров: 1423
Последний ответ 10.12.2024, 18:44:25
от goga_pgasovav
Проблема вебвизором в Яндекс метрике при использовании плагина jch optimize

Автор polezniy

Ответов: 32
Просмотров: 5011
Последний ответ 01.03.2024, 10:26:31
от Vastriet
Некорректно работает Яндекс Метрика из-за mootools

Автор web_signal

Ответов: 4
Просмотров: 2320
Последний ответ 21.06.2023, 23:25:14
от sivers
Модуль Яндекс карты выдает ошибку Warning: count(): Parameter must be an array

Автор 62411

Ответов: 0
Просмотров: 1043
Последний ответ 19.02.2023, 13:34:54
от 62411