Блог

Дополнительный раздел в личном кабинете

Пример создания дополнительной страницы в разделе личного кабинета. Данная страница будет доступна авторизированному пользователю во фронэнде приложения сайт 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').' &mdash; '._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 может перезаписаться. Поэтому в него нужно будет заново внести изменения.

Иван

Иван

16 декабря 2019

Теги: htmlWebasystphp
Просмотры: 1117