Знаете ли вы какие-либо методы шаблонизации документов?
Допустим в БД хранится шаблон и данные. В шаблоне мне нужно сделать какую-то разметку, чтобы подставлять данные. Например вместо %NAME% подставить user_name. Т.е. взять из таблицы users поле name. Но мне придется для этого сделать запрос и сделать замену. Есть ли какие-либо готовые решения или код с github, для того чтобы подстановка осуществлялась автоматически?
Приведу пример: шаблон создает пользователь, вставляет %NAME% - автоматом подставляется user.name, как вариант использовать %ТАБЛИЦА.ПОЛЕ% и id записи. Но может быть есть более интересные решения или идеи.
У меня плохо получается задавать вопросы. Еще пример, написал я %NAME% - как программа узнает, что это user.name? Я не могу специально прописать в коде замену %NAME% на user.name, т.к. может появится поле которого сейчас не существует или таблица, меня интересует глобальный алгоритм сопоставления данных, некий анализатор переменных. Т.е. чтобы кто-либо написал в шаблоне %ЧТО УГОДНО% - и данные подставились из таблицы. Сделать это можно как я уже говорил таким образом: %ТАБЛИЦА.ПОЛЕ%, можно еще строить атрибутную модель и хранить данные вертикально. Но я хочу узнать как делают другие, может есть более оригинальные способы.
Есть ли какие-либо готовые решения или код с github
Кажется, я понял, для чего создан github)))))
Ну так Вы делайте в 3 этапа:
1. Получаете массив всех переменных шаблона
2. Получаете все значения переменных для этого массива
3. Делайте замену через функцию-обработчик.
Это очевидно, но мне нужно несколько другое. например шаблон создает пользователь, вставляет %NAME% - автоматом подставляется user.name, как вариант использовать таблица.поле и id записи. Но может быть есть более интересные решения
vdsp: автоматом - это прям в момент редактирования? => заменяйте ajax-ом через regexp: https://learn.javascript.ru/regexp-methods
если после сохранения (всего шаблона целиком), то сразу все переменные как я указал выше.
У меня плохо получается задавать вопросы. Скажите пожалуйста, написал я %NAME% - как программа узнает, что это user.name? Я не могу специально прописать в коде замену %NAME% на user.name, т.к. может появится поле которого сейчас не существует или таблица, меня интересует глобальный алгоритм сопоставления данных, некий анализатор переменных. Т.е. чтобы кто-либо написал в шаблоне %ЧТО УГОДНО% - и данные подставились из таблицы. Сделать это можно как я уже говорил таким образом: %ТАБЛИЦА.ПОЛЕ%, можно еще строить атрибутную модель и хранить данные вертикально. Но я хочу узнать как делают другие, может есть более оригинальные способы.
Есть ещё вариант с eval но он сложнее, не такой очевидный.
Но мне придется для этого сделать запрос
Можете запись из базы разбить implode надвое, показать [0] потом переменную $name потом [1] после неё, тогда замену не придётся делать ))
А запрос так и так придётся делать, его можно сделать сразу вместе с запросом этой записи.
Вы меня не поняли, мне нужна не реализация, а идея или решение. например шаблон создает пользователь, вставляет %NAME% - автоматом подставляется user.name, как вариант использовать таблица.поле и id записи. Но может быть есть более интересные решения
vdsp: А так сделайте как в тостере - один спецсимвол впереди имени например собака оп vdsp при вставке можно менять слово после собаки на %NAME% а при извлечении ну вы поняли...