coldfusion cfsavecontent html-страница с динамическими переменными - PullRequest
0 голосов
/ 13 ноября 2010

В качестве простого примера проблемы:

<cfsavecontent variable = "pageOutput">
   <cfoutput>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
         <title>#page_title#</title>
      </head>
      <body>
         <cfdump var="#URL#">
      </body>
      </html>
   </cfoutput>
</cfsavecontent>

Я сохраняю эту страницу на диск. Затем, когда я вызываю эту вновь сгенерированную страницу по следующему URL:

http://blah/products.cfm?search_keyword=bathroom&search_category=451&search_province=Auckland

В дампе не отображаются недавно переданные URL-адреса.

Я явно упускаю что-то довольно простое здесь.

Ответы [ 3 ]

1 голос
/ 13 ноября 2010

Что вам нужно сделать, это заменить открывающую или закрывающую часть тега, чтобы при получении вывода у вас был действительный тег. Примерно так:

<cfsavecontent variable="page">
 <cfset sCfO = "<" >
 <cfset sCfC = "</" >
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
     <title><cfoutput>#page_title#</cfoutput></title>
  </head>
  <body>
     <cfoutput>#sCFO#</cfoutput>cfdump var="#URL#">
     <cfoutput>#sCFO#</cfoutput>cfoutput>
          #URL.myMessage#
      <cfoutput>#sCFC#</cfoutput>cfoutput>
  </body>
  </html>

Надеюсь, это имеет смысл ...

0 голосов
/ 14 ноября 2010

Я был бы более склонен скрывать, что в функции, которая в вашем примере выглядит намного лучше, вы можете вызвать dumpVariable (url) и инкапсулировать это в функцию. На самом деле нам нужно было сделать нечто подобное, анализируя пользовательские теги из базы данных в функции рендеринга, которая использовала cfmodule для фактической реализации. Я был очень доволен результатами, и было гораздо проще сказать, что происходит в коде, чем произвольная замена символов.

0 голосов
/ 13 ноября 2010

Если я правильно понимаю ваши объяснения, в ваших сгенерированных с cfsavecontent переменными страницы уже подставлено , поэтому у вас есть статический HTML в products.cfm.Попробуйте открыть его в редакторе и просмотрите код.

У меня есть вопрос: какова цель использования cfsavecontent здесь?Чего ты пытаешься достичь?Похоже, вам это вообще может не понадобиться, обычный CFML должен делать эту работу.

...