Не конкретный вопрос, связанный с холодом, так что ответьте, как вы можете.Создание пользовательской CMS, как обрабатывать настройки страницы?
Я унаследовал ColdFusion проект, где в верхней части каждой страницы устанавливаются различные страницы устанавливающих конкретные переменные, такие как:
<cfset request.page.title = "Example Page">
<cfset request.page.machineTitle = "example_page">
<cfset request.page.isJQueryEnabled = 1>
<cfset request.page.showNavigation = 1>
<cfset request.page.SWFObjectVersion = 2.2>
Я думаю о создании таблицы базы данных только с
integer page_id
varchar key
varchar value
Я бы уменьшил переменные в верхней части каждой страницы только на идентификатор страницы, а затем позвонил в БД для правильных настроек.
Это хорошая идея? Ненавижу изобретать колесо, но это действительно большой проект, который потребует много месяцев для полной миграции контента на CMS.
Каковы текущие методы хранения настроек страницы? (Например, что делает WordPress делать? Drupal? И т.д.)
---- Редактировать ----
Добавление новых функций/страница конкретные сценарии превращается в кошмар, так как я должен открыть каждый файл и добавить/изменить/удалить переменную. Невозможно определить, какие страницы используют какие переменные, не открывая их, или используя командную строку (что, я уверен, создало бы неудобства для других разработчиков).
Кроме того, что происходит, когда я получаю кучу устаревших переменных? Например, в конечном итоге переменная «usePrototype» будет постепенно отключена, и весь сайт будет использовать jQuery.
Другим методом было создание и включение файла с гигантским блоком переключения, который устанавливает эти переменные. Это уже сделано для некоторых вещей (например, метатеги - switch on request.page.machine title, case xxx <meta tag whatever>
). Это беспорядок.
Какая проблема вы пытаетесь решить? Что случилось с нынешним подходом? Какую выгоду вы получите от реорганизации всех существующих (работающих) страниц, чтобы использовать ваш другой подход? –
В eclipse вы можете искать и заменять все вхождения некоторой строки в считанные секунды. Я бы поместил это в метод onRequest в Application.cfc. Вызов db каждый раз для получения SWFObjectVersion кажется для меня немного лишним. application.config.request.SWFObjectVersion - один из вариантов. –