За последние 24 часа нас посетил 17631 программист и 1697 роботов. Сейчас ищут 959 программистов ...

Помогите в реализации логики представления

Тема в разделе "PHP для новичков", создана пользователем Till483, 22 фев 2013.

  1. Till483

    Till483 Активный пользователь

    С нами с:
    18 ноя 2011
    Сообщения:
    15
    Симпатии:
    0
    Здравствуйте. Помогите в реализации логики представления (вывода контента) (я новичок в программировании, стараюсь, но нужен совет).
    Допустим, существует несколько скриптов, разложенных (физически) по папкам – articles/article.php и blogs/blog.php, которые отвечают за получение статьи и поста блога из базы. На данный момент в этих же файлах инициализируется Смарти и передается код в тпл-файлы. Теперь мне нужно разрозненные php-файлы выводить в одном шаблоне (то есть собрать сайт воедино), то есть вынести визуализацию из этих файлов в один файл шаблона. К файлам article.php и blog.php ниже через require подключается файл template.php. И вот тут встает вопрос – как выводить код из article.php в template.php? Завернуть код в функцию и вызывать ее в шаблоне не получится, так как по ходу выполнения кода могут отправляться http-заголовки, а в теле шаблона уже будет другой html-код, и возникнет ошибка headers already sent. Единственное что смог пока придумать – инициализировать и давать уникальное значение специальной переменной $variable в скриптах articles.php и blogs.php, вывод в смарти вырезать из этих файлов в файл view.php, в этом файле на основе значения $variable выводить соответствующее подключение тпл-файла смарти, а к файлу template.php инклюдить уже view.php, Но такой костыль мне не нравится. Как можно сделать лучше?
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А наоборот не пробовал:)
    Обычно создается общий шаблон (template.php) к которому подключаются все необходимое.
     
  3. Till483

    Till483 Активный пользователь

    С нами с:
    18 ноя 2011
    Сообщения:
    15
    Симпатии:
    0
    Наоборот - я уже писал про http-заголовки. Как с ними быть?
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Давай по порядку как строится приложение.
    Создается каркас макета допустим template.php.

    В нем содержится элементы которые должны быть на всех страницах, предположим меню, header сайта и т.д.
    Затем в зависимости от действий пользователя в основной шаблон вставляется шаблон для отображения статей, новостей и т.д.

    Это я описал в общей форме принцип.
    Никаких проблем с хедорами быть не должно.Если они у тебя есть значить ты написал не правильно.