Multiple templates for one presentation channel

Throw the use of presentation channels you can create different views for the same input data (e.g. html, pdf and xml). To further separate content and view I suggest to allow different views for the same presentation channel (e.g. html1, html2). This way you can create multiple views for the same input data.

Example: Press release, "view-channel html1" creates a short version and "view-channel html2" creates the complete version of the same press release

This concept is already implemented by data sources (Datenquellen) but is useful for section templates also.

4 Comments
Peter_Jodeleit
Crownpeak employee
Crownpeak employee

How do you want to switch between the different versions? And why does the concept of presentation channels does not fulfill your needs?

thomas_walter
I'm new here

I am not sure what possibilities we have at present in this area - but we also have the need to sometimes create two (or more) html-pages from one page. This could be either for a präsentation with a differnent branding (using the same content and structure) but an own html-layout or in other special cases.

But I thought this is already possible in 4.1 as I can specify more than one presentation channel for html - or ?

gockel
Crownpeak employee
Crownpeak employee

I think the problem could be solved using render templates and metadata flags in sitestore.

PageStore
  `-- Page 'mypage' [based on template 'pageTemplate']
        `-- body
              |-- section
              `-- section2

SiteStore
   |-- menue
   |      `-- PageRef 1 [based on 'myPage', metaData=view1]
   `-- menue2
          `-- PageRef 2 [based on 'myPage', metaData=view2]

TemplateStore
   |-- PageTemplates
   |      |-- PageTemplate 'pageTemplate'
   |      `-- PageTemplate 'metadata'
   `-- FormatTemplates
          |-- FormatTemplate 'view1'
          `-- FormatTemplate 'view2'

Define a metadata template with a combobox containing the different view-styles.
Choose view in metadata tab of the pagerefs (see above).
== gom form ==
<CMS_INPUT_COMBOBOX name="view" useLanguages="no">
    <ENTRIES>
      <ENTRY value="view1">
        <LANGINFOS>
          <LANGINFO lang="*" label="View 1"/>
        </LANGINFOS>
      </ENTRY>
      <ENTRY value="view2">
        <LANGINFOS>
          <LANGINFO lang="*" label="View 2"/>
        </LANGINFOS>
      </ENTRY>
    </ENTRIES>
    <LANGINFOS>
      <LANGINFO lang="*" label="View" description="View"/>
    </LANGINFOS>
  </CMS_INPUT_COMBOBOX>
===========


PageTemplate 'pagetemplate'

-------------------------------------------
In the presentationchannel of the 'pagetemplate' check against the defined metadata of the pageref to decide which rendertemplate (formattemplate) should be used.

$CMS_SWITCH(#global.node.meta("view"))$
    $CMS_CASE("view1")$
        $CMS_RENDER(template:"view1")$
    $CMS_CASE("view2")$
        $CMS_RENDER(template:"view2")$
$CMS_END_SWITCH$


One simple editor in gom-form of 'pagetemplate' for the content:
<CMS_INPUT_TEXT name="st_text" useLanguages="yes">
    <LANGINFOS>
      <LANGINFO lang="*" label="text" description="text"/>
    </LANGINFOS>
  </CMS_INPUT_TEXT>

Formattemplates 'view1'

=== channel source ===

$-- render text editor of pagetemplate --$


Text in VIEW 1 = $CMS_VALUE(st_text)$

========================

Formattemplates 'view2'

=== channel source ===

$-- render text editor of pagetemplate --$
Text in VIEW 1 = $CMS_VALUE(st_text)$

========================

So you have multiple view (render) templates to render one content page.

MichaelaReydt
Community Manager
Community Manager

Hello Claus,

thank you for your idea to improve FirstSpirit. It is important for us to learn from the experiences of our customers and partners. For this reason we appreciate feedback and look forward to every suggestion.

We have evaluated the issue once again, but have no plans for a realisation in the near future. Therefore, we can not consider your feature request at this time.

Best regards,
Michaela