Задать вопрос

Как правильно сохранить часть верстки в MySQL для дальнейшего прочтения в PHP?

Приветствую, ребят. В общем столкнулся с таким вопросом.
У меня есть конструктор сайтов и на всех идентичный дизайн. Начал писать конструктор лендингов.
На данный момент, есть функция, которая создает/редактирует блок, или же его отображает, в зависимости от входных атрибутов.
Каждый блок сохраняется как отдельная строчка БД и верстка хранится прямо в ячейке таблицы(ничего умнее в голову не пришло)
Все работает хорошо. Но проблема появилась тогда, когда на главной странице лендинга должен быть обязательно PHP код.
Например: Кнопка "Войти"<->"Профиль"
То есть если пользователь авторизован, то показываем кнопку "Профиль", в противном случае "Войти".
Но у меня в базе хранится чисто верстка. На ум приходит только сохранять 2 разных блока, но это только для одного случая, а таких ситуаций на лендинге несколько.
Подскажите пожалуйста, как мне реализовать это правильно? Или может я вообще иду не в правильном направлении написания конструктора?
  • Вопрос задан
  • 191 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Quieteroks
php программист
Вы идете в не правильном направлении.

А если Вы смените оформление через пол года? Или просто решите в блок добавить новые элементы для динамической обработке через js? Или какие то скрытые элементы, доступные администратору?

Нужно блоки сохранять как структуру. В зависимости от настроек блока, вы можете хранить его ключевые параметры, которые и меняют блок. Тогда вы можете хранить и "выбранный дизайн", которых может быть в последующем добавлено множество. И параметры, что могут его изменить, даже цветовую схему и подобное.

В момент развертывания на сайте, блоки сохраняете в кэш, полностью страницу или слайды с несколькими блоками. Что ускорит загрузку и формирование блоков., но позволит в любой момент так же просто изменить любую его часть. Как в коде блока, так и в выборе пользователя по его настройке.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы