Вход Регистрация
Файл: plugins/p_ping/plugin.php
Строк: 125
<?php
/******************************************************************************/
//                                                                            //
//                             InstantCMS v1.10                               //
//                        http://www.instantcms.ru/                           //
//                                                                            //
//                   written by InstantCMS Team, 2007-2012                    //
//                produced by InstantSoft, (www.instantsoft.ru)               //
//                                                                            //
//                        LICENSED BY GNU/GPL v2                              //
//                                                                            //
/******************************************************************************/

class p_ping extends cmsPlugin {

// ==================================================================== //

    
public function __construct(){

        
parent::__construct();

        
// Информация о плагине
        
$this->info['plugin']           = 'p_ping';
        
$this->info['title']            = 'Пинг поисковых систем';
        
$this->info['description']      = 'Пингует Яндекс и Гугл при добавлении статей, объявлений и постов в блоги';
        
$this->info['author']           = 'InstantCMS Team';
        
$this->info['version']          = '1.10';

        
// Настройки по-умолчанию
        
$this->config['Yandex HOST']     = 'ping.blogs.yandex.ru';
        
$this->config['Yandex PATH']     = '/RPC2';
        
$this->config['Google HOST']     = 'blogsearch.google.com';
        
$this->config['Google PATH']     = '/ping/RPC2';

        
// События, которые будут отлавливаться плагином
        
$this->events[] = 'ADD_POST_DONE';
        
$this->events[] = 'ADD_ARTICLE_DONE';
        
$this->events[] = 'ADD_BOARD_DONE';

    }

// ==================================================================== //

    /**
     * Процедура установки плагина
     * @return bool
     */
    
public function install(){

        return 
parent::install();

    }

// ==================================================================== //

    /**
     * Процедура обновления плагина
     * @return bool
     */
    
public function upgrade(){

        return 
parent::upgrade();

    }

// ==================================================================== //

    /**
     * Обработка событий
     * @param string $event
     * @param mixed $item
     * @return mixed
     */
    
public function execute($event$item){

        
parent::execute();

        switch (
$event){

            case 
'ADD_POST_DONE':
                
$pageURL HOST $item['seolink'];
                
$feedURL HOST '/rss/blogs/all/feed.rss';
                
$this->ping($pageURL$feedURL);
            break;

            case 
'ADD_ARTICLE_DONE':
                
$pageURL HOST .'/'$item['seolink'] . '.html';
                
$feedURL HOST '/rss/content/all/feed.rss';
                
$this->ping($pageURL$feedURL);

            case 
'ADD_BOARD_DONE':
                
$pageURL HOST '/board/read'.$item['id'].'.html';
                
$feedURL HOST '/rss/board/all/feed.rss';
                
$this->ping($pageURL$feedURL);

            break;

        }

        return;

    }

// ==================================================================== //

    
private function ping($pageURL$feedURL) {

        
$inConf cmsConfig::getInstance();
        
$inUser cmsUser::getInstance();

        require_once(
PATH.'/plugins/p_ping/IXR_Library.php');

        
$siteName $inConf->sitename;
        
$siteURL  HOST.'/';

        
$result   '';

        
//
        // Яндекс.Блоги
        //
        
if ($this->config['Yandex HOST']){

            
$pingClient = new IXR_Client($this->config['Yandex HOST'], $this->config['Yandex PATH']);

            
// Посылаем запрос
            
if ($pingClient->query('weblogUpdates.ping'$siteName$siteURL$pageURL$feedURL)) {
                
$result .= 'Отправлен ping Яндексу, ';
            }

            unset(
$pingClient);

        }

        
//
        // Google
        //
        
if($this->config['Google HOST']){

            
$pingClient = new IXR_Client($this->config['Google HOST'], $this->config['Google PATH']);

            
// Посылаем запрос
            
if ($pingClient->query('weblogUpdates.extendedPing'$siteName$siteURL$pageURL$feedURL)) {
                
$result .= 'Отправлен ping Google';
            }

            unset(
$pingClient);

        }

        if(
$inUser->is_admin && $result){
            
cmsCore::addSessionMessage($result'info');
        }

        return;

    }

// ==================================================================== //

}

?>
Онлайн: 0
Реклама