[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Переключение с разными переменными. MVC
WingAngel
Добрый день. Ищу помощи/совета от опытных программистов.

Есть сайт созданный на основе MVC в стадии доработки.
1)header.php, footer.php, left-bar.php - Являются постоянными.
2)$view меняется и на сайте изменяется только серединка шаблона в зависимости от $view.
В контроллере получаю:
$view = empty($_GET['view']) ? 'hits' : $_GET['view'];
И дальше с помощью switch проверяю и переключаюсь по разным шаблонам, где в index.php
прописано <?php include_once ($view.'.php');?>
Здесь все просто и понятно.

Но загвоздка заключается вот в чем:
На определенные страницы сайта, Допустим Контакты, Регистрация, Вход, мне нужно сделать что бы left-bar.php и все подключаемое $view не выводилось. А допустим теперь в адрес попадало ?page = registration или ?page = contacts и.т.п.

Я реализовал эту задачу так:
В контроллере создал:
$page = empty($_GET['page']) ? 'registration' : $_GET['page'];
Дальше будет swicth который будет проверять $page.
В index.php прописал:

<?php if($_GET['view']): ?>
<?php include_once 'inc/left-siderbar.php';?>
<?php include_once ($view.'.php');?>
<?php elseif($_GET['page']) :?>
<?php include_once ($page.'.php');?>
<?php else: ?>
<?php include_once 'inc/left-siderbar.php';?>
<?php include_once ($view.'.php');?>
<?php endif; ?>

Скажите является ли это хорошей практикой? Возможно существует другой способ? huh.gif smile.gif
Dno
<?php if($_GET['view']): ?>
<?php
include_once 'inc/left-siderbar.php';?>
<?php
include_once ($view.'.php');?>
<?php
elseif($_GET['page']) :?>
<?php
include_once ($page.'.php');?>
<?php
else: ?>
<?php
include_once 'inc/left-siderbar.php';?>
<?php
include_once ($view.'.php');?>
<?php
endif; ?>


Почему не так ?

<?php 
if($_GET['view']){
include_once 'inc/left-siderbar.php';
include_once ($view.'.php');
}
else if($_GET['page']){
include_once ($page.'.php');
}
else{
include_once 'inc/left-siderbar.php';
include_once ($view.'.php');
}
?>
Valick
будете дублировать темы получите бан
взамест if используйте хотя бы switch
а вообще прочитайте про роутеры php

_____________
Стимулятор ~yoomoney - 41001303250491
sergeiss
WingAngel, на первый раз предупреждение о "кросспостинге", т.е. о создании дублей тем в разных разделах.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.