+0.12
Рейтинг
0.33
Сила
  • avatar vitovt
  • 0
Гугл и Яндекс стали ругаться на сайтамапы.
Яндекс говорит что ошибка в тексте, а гугл говорит, что сайтмап — это HTML страница.
  • avatar vitovt
  • 0
ну я тестирую все на последней версии и назад врядли буду откатывать. Но вы правы, код странный и в будущем плохо масштабируемые, а вот про модули пока ничего сказать не могу, не разобрался еще (
  • avatar vitovt
  • 0
Собственно я покопался и сделал пока что так:

В кофиге прописал так:

Config::Set('router.page.countries', 'PluginGeo_ActionCountry');
     Config::Set('router.page.hotels', 'PluginGeo_ActionHotel');
     Config::Set('router.page.paces', 'PluginGeo_ActionPlace');
     Config::Set('router.page.cities', 'PluginGeo_ActionCity');


Создал хук для плагина

HookAction.class.php

в котором такой код

<?php
/**
 * Created by JetBrains PhpStorm.
 * User: USER
 * Date: 12.09.12
 * Time: 21:29
 * To change this template use File | Settings | File Templates.
 */

class PluginGeo_HookAction extends  Hook
{
    public function RegisterHook() {
        $this->AddHook('init_action','InitAction',__CLASS__,900);
    }

    public function InitAction() {

        $sEvent=$sActionReal=Router::GetActionEvent();
        $aParamsNew=$aParamsReal=Router::GetParams();
        $aParamsNew = array_pad($aParamsNew, -(count($aParamsNew)+1), $sEvent);
        $sUrlRequest=implode('/',$aParamsNew);

        if(preg_match('~^([\w_\-]+)$~i',$sUrlRequest,$aMatch))
        {
            Router::Action('countries','country',$aMatch);
        }
        elseif(preg_match('~^([\w_\-]+)/([\w_\-]+)$~i',$sUrlRequest,$aMatch))
        {
            Router::Action('cities','city',$aMatch);
        }
        elseif(preg_match('~^([\w_\-]+)/([\w_\-]+)/(Hotels)$~i',$sUrlRequest,$aMatch))
        {
            Router::Action('hotels','index',$aMatch);
        }
        elseif(preg_match('~^([\w_\-]+)/([\w_\-]+)/(Places)$~i',$sUrlRequest,$aMatch))
        {
            Router::Action('places','index',$aMatch);
        }
    }
}


вроде работает
  • avatar vitovt
  • 0
Ладно, оставим пока один вопрос: как из одного экшена вызвать другой?
  • avatar vitovt
  • 0
согласен, в итоге получается небольшой плагинчик ) эх… дойдут руки — напишу!
  • avatar vitovt
  • 0
а как они устроены? пишутся себе в таблицу и пишутся.
  • avatar vitovt
  • 0
Ну по сути не совсем удобен такой вариант, если теги были бы на одной странице!
  • avatar vitovt
  • 0
хм…
  • avatar vitovt
  • 0
Я так понимаю что затык в самих классах, где я пишу

class PluginHotels_ModuleTopic_EntityTopic extends Topic_Inherit_EntityTopic
{
	
}
  • avatar vitovt
  • 0
Еще такой момент:

не всегда срабатывают getтеры и setтеры которые прописаны в plugins/hotels/modules/topic/entity

а когда я пишу

protected $aInherits=array(
       'module'=>array('ModuleTopic'),
       'entity'=>array('ModuleTopic'),
            
    );


То выдает

Fatal error: Class 'PluginHotels_ModuleTopic' not found in /****/engine/include/function.php(421) : eval()'d code on line 1
  • avatar vitovt
  • 0
ммм… кажется начинаю понимать ) Спасибо, сейчас попробую!
  • avatar vitovt
  • 0
а, т.е написать в новый класс недостающие методы? Простите за глупые вопросы ) не совсем просто понимаю )
  • avatar vitovt
  • 0
Уже методом проб и ошибок нашел такой вариант ) правда стали выскакивать ошибки в других плагинах на необъявленные методы (
  • avatar vitovt
  • 0
А, т.е я например в модуле своем делаю так:

protected $aInherits=array(
       'module'  =>array('ModuleTopic')
    );


далее в папке своего плагина в class/modules/topic/Topic.class.php

пишу

class PluginHotels_ModuleTopic extends ModuleTopic
{
}


так?

Тогда при выводе топика выдается ошибка

Fatal error: Call to undefined method PluginHotels_ModuleTopic_MapperTopic::GetTopicsReadByArray()


((
  • avatar vitovt
  • 0
не совсем понимаю ( он же переопределится для всех типов топиков?
  • avatar vitovt
  • -1
Или же тут стоит смотреть в сторону этого мануала? livestreet.ru/blog/dev_documentation/4499.html#cut
  • avatar vitovt
  • 0
кстати, как узнаете — отпишитесь плз )
  • avatar vitovt
  • 0
Почему-то если менять vk_id в конфиге с 1111 на нужный, перестает открываться окошко да и вообще только твиттер и openid работают
  • avatar vitovt
  • 0
Я уже столкнулся с велосипедами при написании топика «места» через плагины и конечно много мне непонятно пока, но думаю разберусь!
  • avatar vitovt
  • 0
Да, спасибо ) я видать просто плохо поиском пользовался )