2014-01-23 3 views
-1

Я пытаюсь внести изменения на CMS-сайт CakePHP. Я нашел файл «main_menu.cpt», где находится главное меню. После существующих меню я добавил мои собственные:CakePHP - Как связать ссылку с файлом, который я создал и не поставляется с пакетом

<li> 
    <a href="<?=$html->url('/'.$lang.'/orders');?>"<?=($page=='orders')?'class="active" ':''?>> 
    <?__('orders')?> 
    </a> 
</li>  

, который указывает на файл orders.php, но когда я нажимаю на ссылку, я получаю сообщение:

Not Found  
Error: The requested address '/en/orders' was not found on this server. 

Где я должен загрузить файл заказов .php? Я знаю, это звучит глупо, но это cms совершенно новое для меня, и даже структура каталогов не помогает мне :) Надеюсь, вы это сделаете!

Заранее спасибо

редактировать ################

<?php  
Router::connect('/', array('controller' => 'dpages', 'action' => 'home', 'lang'=>'bg')); 
Router::connect('/:lang/', array('controller' => 'dpages', 'action' => 'home'), array('lang' => 'bg|en')); 
Router::connect('/:lang/pages/:action/*', array('controller' => 'dpages'), array('lang' => 'bg|en')); 
Router::connect('/:lang/:controller/:action/*', array('action' => 'index'), array('lang' => 'bg|en')); 
Router::connect('/pages/:action/*', array('controller' => 'dpages')); 
Router::connect('/dpages/*', array('controller' => 'dpages', 'action' => 'view')); 
Router::connect('/admin', array('admin'=>1, 'controller' => 'dpages', 'action' => 'home')); 
Router::connect('/tests', array('controller' => 'tests', 'action' => 'index')); 

?>

ответ

1

CakePHP является рамочным.

Возможно, вам понадобится OrdersController, у которого есть файл вида для каждого метода. Проверьте, как строятся другие страницы (какие файлы у вас есть в папке Controllers).

Если вы просто хотите добавить страницу контента, для заказов, вы можете поместить ее в папку View/Pages и назовите ее orders.ctp. Вы можете получить доступ к нему на site.com/pages/orders

Добавьте следующую строку в Config/routes.php (среди других Router::connect линий)

Router::connect('/:lang/orders', array('controller' => 'dpages', 'action' => 'orders'), array('lang' => 'bg|en')); 

Перейти к Controller/DPagesController.php и добавить:

public function orders() { 
    // can be blank for now 
} 

Перейти к views/dpages папку и создать orders.ctp и поставьте там статическую форму.

Повторите попытку.

+0

спасибо cornelb for помогая мне. Моя страница состоит из статической формы заказа. Я поместил его в папку views/dpages, но все еще получаю эту ошибку. Что я делаю неправильно? – thecore7

+0

Вы можете вставить содержимое вашего файла 'Config/routes.php'? – cornelb

+0

cornelb, см. Мое обновление для запрошенного кода – thecore7

0

CakePHP не предназначен для вас, чтобы добавить дополнительные файлы php, подобные этому, и не должно быть. Поэтому я настоятельно рекомендую вам переписать все, что у вас есть, в файле orders.php, чтобы использовать фреймворк CakePHP.

Однако вы можете добавить orders.php в свою папку «Приложение» и «Поставщик», а затем включить его в действие контроллера (пример: include_once(APP . 'Vendor/orders.php');). Затем вы должны иметь доступ к нему через http://yourwebsite.com/controller/action, где контроллер - это имя контроллера, на который вы решили включить включение, а действие - это имя действия, которое вы выбрали для включения.

+0

спасибо Kai, но я не уверен, как использовать ваш ответ .. не имеют опыта работы с fameworks .. – thecore7

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