2012-10-11 2 views
0

Я хотел бы иметь один модуль контроллера реализовать различные методы действий, но я не хочу, чтобы URL-адреса, чтобы выйти, какРеализация отдельного контроллера модуля, оставляя контроллер из URL

www.example.com/module/index/action1 
www.example.com/module/index/action2 
www.example.com/module/index/action3 

где /index/ ведет нас к «IndexController». Для того, чтобы иметь URL-адреса, как я хочу

www.example.com/module/action1 
www.example.com/module/action2 
www.example.com/module/action3 

мне нужно было бы создать класс контроллера для каждый метод действия. Каков наилучший способ получить URL-адреса, которые я хочу, с помощью разных методов действий в одном хорошем классе/файле/контроллере? Мне было интересно, есть ли способ помимо перезаписи URL. Если нет, можете ли вы указать мне хороший учебник по перезаписи URL для Magento?

ответ

0

Если вы не хотите переписывать URL-адреса на веб-сервере, вы также можете, по сути, переписать URL-адрес внутри кода Magento. Например, вы можете переопределить функцию Совпадение в пределах Mage_Core_Controller_Varien_Router_Standard так:

/* after getting the controller name and action name... */ 
if ((strcmp($module, 'myModuleName') == 0) && (strcmp($action, 'index') == 0)) { 
    $action = $controller; 
    $controller = 'index'; 
} 
/* before checking if this place should be secure and instantiate controller class 

Я думаю, что URL переписывания на веб-сервере будет чище и более управляемым, хотя.

Если вы используете URL переписывания Magento, вы, вероятно, необходимо задать правило для каждого действия, такие как:

Type: custom 
Request Path: myModuleName/hello 
Target Path: myModuleName/index/hello 

Вы можете указать эти правила URL переписывания в админке, при Catalog> URL Управление перепиской

0

Нет реальной причины нарушать схему Magento reuter/controller/action. Для любого отклонения они создали переписывающий URL-адрес.

Вы можете создать Url rewrite, даже опустив часть module. Создание перезаписи URL-адресов очень просто, я не думаю, что вам нужен учебник для этого, просто откройте панель администратора, перейдите на страницу Catalogue-> Url Rewrites Management. Нажмите на создать новую переписывают, выберите Пользовательские типа, добавьте нужный Uri часть в Запрос Путь (module/action), и фактической URI в Target Path (module/controller/action).

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