pakrauce
@pakrauce

Как сделать по MVC динамичный leftbar?

На сайте есть главное меню в header с ссылкой ?view=page&amp;id=<?=$value['id']?>. В модели функция с запросом, в контроллере эту функцию вызываем, это понятно. Для каждой page содержимое leftbar должно подгружаться своё. В leftbar у нас например изучаемые предметы. В БД для каждого из них присвоен menuid - он показывает к какой page относится данный предмет. Сами предметы тоже имеют свои странички со ссылкой ?view=study&amp;id=<?=$value['id']?>. Функция такая
function study($id){
    $result=  mysql_query('SELECT id, name FROM study WHERE menuid='.$id);
    $study=array();
    while ($row = mysql_fetch_array($result)) {
        $study[]=$row;
    }
    return $study;
}


В контроллере мы её вызываем
switch ($view){
...
    case ('page'):
        $id=  abs((int)$_GET['id']);
        $study=  study($id);
        break;
...
}


Вот что получается. Когда перехожу по главному меню (page), leftbar нормально подгружается. Когда перехожу по пунктам leftbar (study) - он становится пустым (и это понятно). Нужно, чтобы он оставался таким же. Вызвать ту же функцию в case('study') - нельзя, там id уже другой получаем. Подскажите как проще всего решить проблему и что переписать.

Код самого leftbar
<ul class="leftBarMenu">
            <?php foreach ($study as $value):?>
                <li><a href="?view=study&amp;id=<?=$value['id']?>"><?=$value['name']?></a></li>
            <?php endforeach; ?>
        </ul>


Я только учусь и проект учебный для колледжа, не судите строго
  • Вопрос задан
  • 2334 просмотра
Пригласить эксперта
Ответы на вопрос 2
Я один ни черта не понял из этого описания?
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
Скажем так, в таком самописном MVC есть два варианта.
1. Во всех экшенах всех контроллеров вызывать контроллер leftbar, передавать ему нужный параметр и получать из него данные для отображения, которые потом пойдут в шаблон вместе с остальными.
2. Вещь сколь очевидная, столь же и редко приходящая людям в голову: главному шаблону тоже нужен свой контроллер! У тебя ведь отображение состоит из двух основных частей - шаблон конкретной страницы, и шаблон всего сайта. Первый включается во второй. Но при этом у первого есть свой конроллер, а у второго - нету! А если его завести, то всю логику виджетов, лефтбаров, баннеров, меню и прочего - можно (а, главное - НУЖНО) будет вынести в него.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы