1. Фронт контроллер анализирует запрошенный URL, определяет нужный контроллер, действие и параметры. Например, контроллер - статьи, действие - показать главную раздела статей.
2. Контроллер дёргает метод модели, который загружает из БД каталоги статей и передаёт полученный данные на View, командуя подгрузить шаблон для главной страницы статей и общий шаблон для всех страниц сайта (первое встравивается во второе).
3. View выполняет запрошенные действия с помощью метода draw, передавая шаблонам данные каталогов, которые они должны уже в цикле отрисовать.
НО: в полученных моделью данных нет таких полей как заголовок страницы, мета-описание, мета-теги и проч.
Вопрос - где всё это указывать? Варианты:
1. Прописывать переменные в шаблоне для главной страницы статей (но разве можно задавать переменные в шаблоне View?).
2. Определять переменные в методе контроллера статей, передавать их модели и затем View (как-то длинно).
3. Задавать значения переменных в методе модели. Но это вообще абсурд, так как назначение метода модели у меня - получение данных из БД.
4. Создать еще один метод модели для получения из какого-нибудь ini файла данных для запрошенной страницы (тоже как-то слишком сложно).
Я просто в растерянности... Чем же мне формировать заголовок HTML страниц?
Ты неверно формулируешь задачу.
По сути, это банальное заполнение шаблона переменными.
А переменные мы получаем из модели. Вот и всё.
Поскольку мета-теги - это редактируемые данные, то они должны лежать в БД.
То есть, для каждого контроллера должны быть прописаны в отдельной таблице дефолтный тайтл, теги и прочее.
Которые тянутся на автомате прототипом экшена.
При этом конкретный экшен может перезаписать любую из переменных, тайтл к примеру.
Если есть какая-то конкретная логика формирования той или иной переменной в зависимости от содержания страницы - она дергается опять же в экшене