+0.12
Рейтинг
0.33
Сила

Вопрос про грамотный роутинг!

Итак, я снова ударился в изучение уже новой версии LS и пишу некоторые плагины.
И вот возник такой вопрос по роутингу.
Буду очень благодарен за подсказки.

Например, в конфиге я указал такую конструкцию

Config::Set('router.page.countries', 'PluginGeo_ActionCountry');


таким образом все что будет в браузере набрано domain.com/countries/ пойдет в экшн ActionCountry
урлы будут вида /countries/Ukraine/ или /countries/Ukraine/Kiev/ и так далее.

Можно ли как-то прописать так, чтобы /countries/Ukraine/ шло в экш ActionCountry
а /countries/Ukraine/Kiev/ в ActionCity а /countries/Ukraine/Kiev/Hotels/ в ActionHotel и так далее.

И еще, в экшене ActionCountry я написал так

protected function RegisterEvent()
    {        
        $this->AddEventPreg('/^[\w\-\_]*$/i','actions');       
    }


но когда я пытаюсь сделать вот так:

print_r($this->GetParams())


то при адресах вида /countries/ и /countries/Belarus/ ничего не выдает, пустой массив т.е. НО зато когда есть урл вида /countries/Belarus/Minsk то в него попадает уже Minsk и так далее, а как мне собственно получить все вхождения в урл )

есть вариант такой

$sUrlFull=join('/',$this->GetParams());
        if ($sUrlFull!='') {
            $sUrlFull=$this->sCurrentEvent.'/'.$sUrlFull;
        } else {
            $sUrlFull=$this->sCurrentEvent;
        }


но он не очень красивый мне кажется.

Спасибо всем отозвавшимся )

Как убрать кэширование при update

Не могу понять, делаю свою плагин по образу и подобию других. И вот делаю обновление данных об отеле

public function UpdateHotel(PluginHotels_ModuleHotel_EntityHotel $oHotel)
	{
		if($result = $this->oMapper->UpdateHotel($oHotel))
		{
return true;
		}
		return false;
	}


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

public function UpdateHotel(PluginHotels_ModuleHotel_EntityHotel $oHotel)
	{
		
		$sql="UPDATE hotels__ SET hotel_title_ru=? WHERE hotel_id=?d";
		if ($this->oDb->query($sql,$oHotel->getTitleRu(),$oHotel->getId())) 
		{			
			return true;
		}			
		
		return false;
	}


так вот если данные которые передаются при сабмите формы отличаются от тех, что в таблице записаны для данной строки — все ок, если нет — отдает false, а как принудительно выполнить SQL запрос?

Проблема с хуками

Подкскажите, пожалуйста, не совсем понимаю. Прочитал вот этот топик Механизм хуков в движке но не понял.

Делаю плагин, в котором есть новый тип топика (отель, описание отеля).

Добавление работает отлично, а как из плагина управлять выводом 1 топика?

Написал я хук

<?
class PluginHotels_HookTopic extends Hook
{

public function RegisterHook()
    {
    	$this->Hook_AddExecModule('topic_show', 'PluginHotels_Topic_TopicShow',__CLASS__, 10);
    } 
}


Соответственно в


class PluginHotels_ModuleTopic extends Module
{
public function TopicShow($oTopic)
    {
    	print $oTopic->getId();
    }
}


но во-первых не видит метод getId(); хотя для топика он есть а во вторых, непонятно что дальше.

Мне нужно чтобы выводился топик этот согласно шаблону, который лежит в шаблонах плагина (templates/skin/default/hotel.tpl) а не в общих шаблонах с префиксом topic_hotel.tpl

ну и все остальное ))

Плагины

Я вот не нашел нигде простого урока по созданию плагиныи начал сам вов сем ковыряться и подумал что может быть кому-то будет интересно описание того, что я делаю и как вообще создаются плагины? Или я просто плохо искал?

Вопрос: геосервисы для сайта!

Занялся разработкой небольшого сообщества путешественников и нашел аналог сервиса, как мне нужно — turometr.ru/geo/ и возник вопрос — это что-то самописаное, в смысле такое плагин или это необходимо заказывать как дополнительную разработку и програмисстского сообщества?

Буду рад за наводки, отзывы, комментарии и критику ) Спасибо!