Как отобразить меню компонента Joomla на всех view

337
07 июня 2017, 05:02

Пишу для себя компонент Joomla с названием Ypay. Файловая структура как на скриншоте https://i.stack.imgur.com/B098N.png. И вот скриншот самого меню https://i.stack.imgur.com/2UiC2.png Каждый пункт меню - это будет своя model и свой views. Но как отобразить это меню на всех views?

код меню в models/ypay.php 
class YPayModelYPay extends JModelItem
{
protected $messages;
protected function getMenuFromDb()
{
    $db    = JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('menu_name, parent_menu_name, has_child_menu');
    $query->from('#__ypay_mainmenu');
    $db->setQuery((string) $query);
    $messages = $db->loadAssocList();
    return $messages;
}
public function getMenuNameMsg()
{
    if (!isset($this->message))
    {
        $this->message = $this->getMenuFromDb();
    }
    return $this->message;
}
}
код меню в views/ypay.html.php
class YPayViewYPay extends JViewLegacy
{
    function display($tpl = null)
{
    // Assign data to the view
    $this->msg = $this->get('MenuNameMsg');
 // Check for errors.
    if (count($errors = $this->get('Errors'))) {
        JLog::add(implode('<br />', $errors), JLog::WARNING, 'jerror');
        return false;
    }
    $this->showMainMenu();
    // Display the view
    parent::display($tpl);
}
public function showMainMenu()
{
    foreach ($this->msg as $item => $value) {
        if ($value['has_child_menu'] == '0' && $value['parent_menu_name'] == 
'0') {
            echo "<a href=''><input type='button'  style='padding-bottom: 
5px;' class='btn btn-primary btn-ypay' id='projects-btn' value=" . 
$value['menu_name'] . "></a>";
        } elseif ($value['has_child_menu'] == '1') {
            $liItem = [];
            $parentMenu = $value['menu_name'];
            echo '<div class="dropdown" style="display: inline; margin-
right: 5px;"><button class="btn btn-primary dropdown-toggle" type="button" 
data-toggle="dropdown">' . $value['menu_name'] .' '. '<span class="caret">
</span></button><ul class="dropdown-menu">';
            foreach ($this->msg as $key => $data) {
                if ($parentMenu == $data['parent_menu_name']) {
                    $liItem[] = $data['menu_name'];
                }
            }
            for ($i = 0; $i <= count($liItem) - 1; $i++) {
                echo '<li><a href="/ypay/index.php?
option=com_ypay&view=workers">' . $liItem[$i] . '</a></li>';
                if ($liItem[$i] !== $liItem[count($liItem) - 1]) echo '<li 
class="divider" style="border-bottom: 1px solid #007bcc; margin: 2px 1px 2px 
2px;"></li>';
            }
            echo '</ul></div>';
            unset($liItem);
        }
    }
}
}

Вопрос в том, как отобразить это меню на всех views (workers, orders и т.д.)?

P.S. Не судите строго - только учусь.

READ ALSO
Автоматически добавляются объекты PHP

Автоматически добавляются объекты PHP

Есть несколько классов, которые взаимодействуют между собой

320
Как сохранить координаты в mysql Leaflet drow [требует правки]

Как сохранить координаты в mysql Leaflet drow [требует правки]

Как сохранить координаты в mysql Leaflet drow

363
Урок по изучению PHP

Урок по изучению PHP

Вопрос 1: При написании кода в:

283