Дополнительный раздел в личном кабинете
Пример создания дополнительной страницы в разделе личного кабинета. Данная страница будет доступна авторизированному пользователю во фронэнде приложения сайт Webasyst.
1) Создаем файл action и называем например siteFrontendMyOffice.action.php
../wa-apps/site/lib/actions/frontend
<?php class siteFrontendMyOfficeAction extends waMyProfileAction { public function execute() { parent::execute(); $this->view->assign('my_nav_selected', 'office'); // Set up layout and template from theme $this->setThemeTemplate('my.office.html'); if (!waRequest::isXMLHttpRequest()) { $this->setLayout(new siteFrontendLayout()); $this->getResponse()->setTitle(_w('My account').' — '._w('My office')); $this->layout->assign('breadcrumbs', $this->getBreadcrumbs()); $this->layout->assign('nofollow', true); } } public static function getBreadcrumbs() { return array( array( 'name' => _w('My office'), 'url' => wa()->getRouteUrl('/frontend/myOffice'), ), ); } }
2) Добавляем роутинг в файле routing.php
../wa-apps/site/lib/config
<?php return array( 'login/' => 'login/', 'forgotpassword/' => 'forgotpassword/', 'signup/' => 'signup/', 'data/regions/' => 'frontend/regions', 'my/' => array( 'module' => 'frontend', 'action' => 'my', 'secure' => true, ), 'my/office/' => array( 'module' => 'frontend', 'action' => 'myOffice', 'secure' => true, ), '<url>' => 'frontend/' );
3) Ну и самое интерестное для нас - это создаем файл шаблона в теме дизайна my.office.html. Теперь в шаблоне можно вывести любую информацию. Страница будет доступана авторизированному пользователю по адресу вашдомен/my/office/
Ссылку на раздел можно сделать так:
<li{if $wa->globals('isMyOffice')} class="active"{/if}> <a href="{$wa->getUrl('/frontend/myOffice')}">[`My office`]</a> </li>
P.S. После обновления приложения Сайт файл routing.php может перезаписаться. Поэтому в него нужно будет заново внести изменения.