2015-02-23 4 views
0

Я в тупике, пытаясь заставить статические контент, партитуры и макеты вести себя и отображаться. Я пытаюсь создать:Использование макетов, partials и includeContent() в CFWheels

  • 1 основной макет для хранения данных верхнего/нижнего колонтитула
  • 1 частичный вид на главную страницу, так как это расположение тела отличается
  • 1 частичный вид для всех остальных страниц

Все частичные элементы должны подаваться в основной макет, который я буду строить под видами/layout.cfm

Вот эти файлы.

Контроллер/Home.cfc - содержит функции для индекса и уединенности

<cfcomponent extends="Controller"> 

    <cffunction name="index"> 

     <cfset qRecipes = model("tblRecipes").findAll(
      select="id, name, image, homepage_order", 
      where="homepage_order > 0", 
      order="homepage_order", 
      maxrows=4 
     ) /> 
    </cffunction> 

    <cffunction name="privacy"> 

    </cffunction> 

</cfcomponent> 

просмотров/Главная/index.cfm - Если отобразить расположение домашней страницы просмотров/Главная/privacy.cfm - Содержит статический текст, завернутый в cfsavecontent.

<cfsavecontent variable="foo"> 
xxxxxxxx 
</cfsavecontent> 
<cfset contentFor("foo") /> 

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

<cfoutput>#includePartial("/shared/header")# 
#styleSheetLinkTag(source="homepage", head=true)# 
</cfoutput>asdfsafd 

    <body> 

     <div id="page-wrap"> 

     <header> 
      <cfoutput>#includePartial(partial="/shared/socialmedia", cache=1440)#</cfoutput> 

      <nav id="top-navigation"> 
       <cfoutput>#includePartial("/shared/topnav")#</cfoutput> 
      </nav> 
     </header> 

     <cfoutput>#includeContent()#</cfoutput> <!--- All partial data should output here ---> 
    </body> 
</html> 

Поскольку я размещая весь текст на частную жизнь в переменную мне нужно еще одну страницу для вывода #includeContent("foo")# до основного макета будет загружаться? Или я могу заполнить текст, полный текста, который не должен быть завернут в cfsavecontent?

+0

Похоже, вы пишете свои собственные рамки. Есть ли причина, по которой вы решили не использовать сообщество, поддерживаемое одним файлом FW/1 или Coldbox? Оба они поддерживают этот вид «гнездования» из коробки. –

+0

@ScottStroz они отметили его 'cfwheels', поэтому они используют инфраструктуру сообщества. – Jarede

+0

Пропустил это .... мой плохой ... –

ответ

1

Нет необходимости обертывать страницу конфиденциальности в <cfsavecontent>. Попробуйте без тегов <cfsavecontent> и без contentFor("foo"). Затем его содержимое должно появиться там, где у вас есть #includeContent()# в главном макете.

Что вы пытаетесь сделать с главной страницей, которая отличается? Что-нибудь?

Смежные вопросы