ColdFusion: хранение тегов внутри выходных данных базы данных в виде строки

Я создаю систему CMS, в которой есть правило перезаписи для использования только одной страницы. Затем с этой страницы я извлекаю контент из базы данных, чтобы заполнить каждую страницу на основе ее URL-адреса. Все это прекрасно работает, однако на некоторых страницах я также хочу использовать теги ColdFusion, которые хранятся в таблицах базы данных, например <cfif> и т. д.

Когда страница визуализируется, она выводит теги в виде html вместо запуска тега ColdFusion. Я нашел способ заставить его работать, используя Evaluate() вокруг содержимого. Тем не менее, чтение этого, по-видимому, имеет серьезные проблемы с производительностью.

Поэтому мне было интересно, какие еще варианты я мог бы использовать, чтобы заставить это работать.


person Community    schedule 08.12.2012    source источник
comment
Этот вопрос задавали раньше - у меня нет удобного URL-адреса, и я не вижу его в связанных, но определенно есть (по крайней мере, один) вопрос по этому вопросу.   -  person Peter Boughton    schedule 09.12.2012
comment
Также - я создаю систему cms - не делайте. Сэкономьте много времени и используйте Mura (или любую существующую CMS), которая уже решает более 95% проблем, с которыми вы столкнетесь.   -  person Peter Boughton    schedule 09.12.2012
comment
Спасибо за комментарии, Питер, вчера я много пытался найти это и нашел несколько ответов, но, к сожалению, ни один из них не сработал. Когда я говорил о системе CMS, я имел в виду базовый одностраничный шаблон, который извлекает содержимое из базы данных. Не более того. любые другие комментарии будут оценены.   -  person    schedule 09.12.2012


Ответы (1)


Вы должны иметь возможность записать данные в файл, а затем использовать <cfinclude>, чтобы включить его на свою страницу.

Не проверено, но что-то вроде этого должно работать.

<cfset NewFileName = CreateUUID()&'.cfm'>
<cffile action="write" file="YourPath\#NewFileName#" output="#DatabaseInfo#">
<cfinclude template="#NewFileName#">
<cffile action="delete" file="YourPath\#NewFileName#">
person Matt Busche    schedule 08.12.2012
comment
Спасибо, Мэтт, вчера я пошел по этому пути, так как многие люди рекомендовали его, однако каждый раз, когда я пробовал, он все равно выводил как html, а не как Coldfusion. - person ; 09.12.2012
comment
Можете ли вы опубликовать код, который вы использовали, вместе с выводом, который вы получили? - person Matt Busche; 09.12.2012
comment
Нет необходимости, Мэтт, просто нашел недостаток в моем исходном коде по вашей рекомендации и заставил его работать. Раньше я заключал шаблон в тег cfoutput и помещал в базу данных только код, т. е. #now()#. Теперь я изменил его так, что тег cfoutput также находится внутри базы данных, и теперь он работает. Спасибо за вашу помощь в этом. - person ; 09.12.2012