2012-06-22 2 views
2

1) У меня есть «календарь» контроллера и есть действие «showDate», которое получает дату по URL-адресу. Таким образом, URL что-то вроде «календарь/шоу-дата/дата/2012-07-22»Zend Routes перевести URL-адрес

2) У меня есть ссылка, чтобы отобразить все записи, «календарь /»

Итак, я хочу, чтобы создать поэтому мои ссылки выглядят как «kalendar/2012-07-22» и «kalendar /».

Может ли кто-нибудь мне помочь?

ответ

0

Вы можете перенаправить все звонки calendar в kalendar. Есть две возможности, либо вы делаете это с Zend (предпочтительнее), либо измените конфигурацию своего сервера, чтобы переписать вызовы на календарь с HTTP 302 (уродливый).

Однако Вы должны проконсультироваться с официальным Zend Documentation, который довольно хорошо

0

Вы должны установить пользовательские маршруты, это мой путь:

в приложение папку/конфиги/создать файл с именем «routes.ini»

Put в файле маршрут:

;index-homepage, parameter date isn't required 
;"index" is key of your route 
routes.index.route = "kalendar/:date" 
routes.index.defaults.controller = calendar 
routes.index.defaults.action = show 
routes.index.defaults.date = 

Так что в вашем bootstrap.php определить, что конфигурационный файл:

protected function _initRoute() { 
    $router = Zend_Controller_Front::getInstance()->getRouter(); 
    $router->addDefaultRoutes(); 

    $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini'); 
    $router->addConfig($config, 'routes'); 
} 

И это, вы можете вызвать URL-адрес

www.website.com/kalendar

и

www.website.com/kalendar/2012-1-1

См. Ответы на этот вопрос для деталей: Simple rewrites in Zend Framework

+0

Это то, что вы хотите в действии dogadjaji.rs/kalendar-dogadjaja и dogadjaji.rs/kalendar-dogadjaja/10/2012 :) – tasmaniski

+0

это не соответствует www.website.com/kalendar, оно открывает мое действие showDate с start_date param установить в пустую строку –

+0

попытаться установить дату show, а не showDate ... Я обновляю свой ответ. Вам нужно спросить в контроллере, если ($ _ GET ['start_date']) {...} ... ofcourse – tasmaniski

1

I «Я искал перевод URL-адреса с Zend_Translate, и я наткнулся на плагин этого сайта, который пытается автоматически перевести сегменты URL (модуль/контроллер/действие).

http://blog.helmich.cz/305-howto-simple-multilingual-routes-in-zend-framework/

Хорошая вещь, что это модифицированный пользовательский класс маршрутизатор, который может функционировать аналогично с Zend_Router так что относительно знакомы с летучей мыши.

$pages = new MyApp_Controller_Router_Route(
    ':locale/:@controller/:@action/*', 
    array(
     'controller' =>; 'index', 
       'action'  => 'index', 
       'locale'  => 'cs' 
      ) 
); 

$router->addRoute('pages',$pages); 

Что вам нужно, это иметь идентификатор языка в вашей URL (названной: локалите в вышеприведенном примере), так что ваш Zend_Translate может установить правильный язык.

www.example.com/en/calendar/2012-06-22/ 
www.example.com/fr/calendrier/2012-06-22/ 
www.example.com/de/kalender/2012-06-22/ 
www.example.com/it/calendario/2012-06-22/ 

Я только немного играл с этой концепцией, но я помню, что она обещала. Вам нужно будет ближе к Zend_Translate: http://framework.zend.com/manual/en/zend.translate.html

Я надеюсь, что это поможет!

Cheers!

2

Согласно этому сообщению: http://www.z-f.fr/forum/viewtopic.php?id=5138

Решение добавить '@locale' => $ LANG в Params.

$this->url(array('lang'=>'it','@locale'=>'it')) 

Это работает очень хорошо для меня.

 Смежные вопросы

  • Нет связанных вопросов^_^