Фраемворк кохана, разобраться с роутами, походу что-то не так сделал
Цена договорная
Задача очень простая.
Сайт на фраемворке кохана
Знаю что кохана устарела, но все же работаю с ней )
---------------------------------------------
Что я решил сделать, сделал личный кабинет, точнее хочу сделать, как бы что-то работает что-то нет, есть главная страница, там свой дизайн и стили, а для агентов, личный кабинет, я сделал свой дизайн и подключение стилей.
---------------------------------------------
Как я это реализовал.
/application/views/index
тут лежит сам шаблон под названием agent.php шаблон для личного кабинета агентов.
и там же лежит index.php, это шаблон для главной страницы сайта.
---------------------------------------------
/application/classes/controller
тут лежит контроллер самый главный в котором стили те что должны грузиться для шаблона agent.php.
а так же там и для админки и для главной страницы сайта, я делал по примеру главной страницы сайта.
вод код agent.php
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Agent extends Controller_Base
{
public $template = 'index/agent';
public function before()
{
parent::before();
$action = $this->request->controller();
$this->template->styles[] = 'media/agent/a.css';
$this->template->styles[] = 'media/agent/svg.css';
$this->template->scripts[] = 'media/js/2.2.4jquery.min.js';
}
}
---------------------------------------------
Далее, там же идет папка index и admin
я отдельную agent не стал создавать, так что заходим в index, там я создал agent.php с этого файла идет подгрузка то что будет в шаблоне. То что мы хотим вывести из бд.
/application/classes/controller/index
agent.php то что в этом файле
там два актиона, index это для главной страницы сайт.ру/agent/
и moizajavki это для второй страницы где будут заявки сайт.ру/agent/moizajavki/
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Index_Agent extends Controller_Agent
{
public function action_index()
{
$id = (int)$this->request->param("id");
$agents = ORM::factory('agent')
->where('id', '=', $id)
->find();
$content = View::factory('index/agent')
->bind('agent', $agents)
->bind('id', $id);
$this->template->site_name = 'Личный кабинет';
$this->template->content = $content;
}
public function action_moizajavki()
{
$id = $this->request->param("id");
$zajavkis = ORM::factory('zajavki')
->where('id', '=', $id)
->find();
$content = View::factory('index/agent/moizajavki')
->bind('zajavki', $zajavkis)
->bind('id', $id);
$this->template->site_name = 'Мои заявки';
$this->template->content = $content;
}
}
---------------------------------------------
Роуты такие:
Route::set('moizajavki', 'agent/moizajavki(/<controller>(/<action>(/<id>)))')
->defaults(
array(
'directory' => 'index',
'controller' => 'agent',
'action' => 'moizajavki',
)
);
Route::set('agent', 'agent(/<controller>(/<action>(/<id>)))')
->defaults(
array(
'directory' => 'index',
'controller' => 'agent',
'action' => 'index',
)
);
---------------------------------------------
Итого такой получился
сайт.ру/agent/ заходит но есть ошибка. титл тож видно, меняет, выводи, но есть ошибка.
сайт.ру/agent/moizajavki/ заходит, титл даж видно, меняет.
Ошибка вот такая:
Почему жалуется, так и не понял.
Что у меня в шаблоне главной страницы agent.php
Основной контент который только на этой странице видно.
Его я хочу обернуть в код, который будет показывать только на этой странице, а на других выводить <?=$content?>
вывод контента и филтрование в главном шаблоне для агентов
<?php if(Request::initial()->controller() != 'agent'): ?>
<?=$content?> подгрузк контента из других страниц для агента.
<?php else:?>
тут контент только для главной страницы, который только там и видно.
<?php endif; ?>
То ошибок нет, но и код как-то не работает, показывает (контент только для главной страницы для агентов, везде)
Если убрать код и просто добавить в код шаблона <?=$content?>, то ошибку выдает что на скрине выше.
---------------------------------------------
И где я накосячил??? раз не фурыкает.
Сайт на фраемворке кохана
Знаю что кохана устарела, но все же работаю с ней )
---------------------------------------------
Что я решил сделать, сделал личный кабинет, точнее хочу сделать, как бы что-то работает что-то нет, есть главная страница, там свой дизайн и стили, а для агентов, личный кабинет, я сделал свой дизайн и подключение стилей.
---------------------------------------------
Как я это реализовал.
/application/views/index
тут лежит сам шаблон под названием agent.php шаблон для личного кабинета агентов.
и там же лежит index.php, это шаблон для главной страницы сайта.
---------------------------------------------
/application/classes/controller
тут лежит контроллер самый главный в котором стили те что должны грузиться для шаблона agent.php.
а так же там и для админки и для главной страницы сайта, я делал по примеру главной страницы сайта.
вод код agent.php
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Agent extends Controller_Base
{
public $template = 'index/agent';
public function before()
{
parent::before();
$action = $this->request->controller();
$this->template->styles[] = 'media/agent/a.css';
$this->template->styles[] = 'media/agent/svg.css';
$this->template->scripts[] = 'media/js/2.2.4jquery.min.js';
}
}
---------------------------------------------
Далее, там же идет папка index и admin
я отдельную agent не стал создавать, так что заходим в index, там я создал agent.php с этого файла идет подгрузка то что будет в шаблоне. То что мы хотим вывести из бд.
/application/classes/controller/index
agent.php то что в этом файле
там два актиона, index это для главной страницы сайт.ру/agent/
и moizajavki это для второй страницы где будут заявки сайт.ру/agent/moizajavki/
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Index_Agent extends Controller_Agent
{
public function action_index()
{
$id = (int)$this->request->param("id");
$agents = ORM::factory('agent')
->where('id', '=', $id)
->find();
$content = View::factory('index/agent')
->bind('agent', $agents)
->bind('id', $id);
$this->template->site_name = 'Личный кабинет';
$this->template->content = $content;
}
public function action_moizajavki()
{
$id = $this->request->param("id");
$zajavkis = ORM::factory('zajavki')
->where('id', '=', $id)
->find();
$content = View::factory('index/agent/moizajavki')
->bind('zajavki', $zajavkis)
->bind('id', $id);
$this->template->site_name = 'Мои заявки';
$this->template->content = $content;
}
}
---------------------------------------------
Роуты такие:
Route::set('moizajavki', 'agent/moizajavki(/<controller>(/<action>(/<id>)))')
->defaults(
array(
'directory' => 'index',
'controller' => 'agent',
'action' => 'moizajavki',
)
);
Route::set('agent', 'agent(/<controller>(/<action>(/<id>)))')
->defaults(
array(
'directory' => 'index',
'controller' => 'agent',
'action' => 'index',
)
);
---------------------------------------------
Итого такой получился
сайт.ру/agent/ заходит но есть ошибка. титл тож видно, меняет, выводи, но есть ошибка.
сайт.ру/agent/moizajavki/ заходит, титл даж видно, меняет.
Ошибка вот такая:
Почему жалуется, так и не понял.
Что у меня в шаблоне главной страницы agent.php
Основной контент который только на этой странице видно.
Его я хочу обернуть в код, который будет показывать только на этой странице, а на других выводить <?=$content?>
вывод контента и филтрование в главном шаблоне для агентов
<?php if(Request::initial()->controller() != 'agent'): ?>
<?=$content?> подгрузк контента из других страниц для агента.
<?php else:?>
тут контент только для главной страницы, который только там и видно.
<?php endif; ?>
То ошибок нет, но и код как-то не работает, показывает (контент только для главной страницы для агентов, везде)
Если убрать код и просто добавить в код шаблона <?=$content?>, то ошибку выдает что на скрине выше.
---------------------------------------------
И где я накосячил??? раз не фурыкает.
- Файлы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.