2

In the original methods used to set up page layouts (Standard Values and Branches) I was able to predefine a set of renderings without data sources applied, that could be wired up when the page was created.

Unless I am missing something, this does not seem to be the approach with SXA and partials? It seems that you have to have the data sources applied in the partial design, which cannot then be modified on the page itself? Is this correct or am I missing something? Unless the rendering has a placeholder and then you can add additional renderings when the page is created.

N.B. I'm guessing that a workaround would be to have the data source templates inherited by the page, but that seems to contradict the proposed flexible nature of SXA partial.

1
  • Comments are not for extended discussion; this conversation has been moved to chat.
    – Mark Cassidy
    Commented Feb 3, 2021 at 15:58

2 Answers 2

0

So in the end I came up with a hack that satisfies both the content authors need for being able to select data-sources for renderings on a page, and have SXA add in the more static renderings like headers, footers etc.

I started by creating a Branch Template based on the Page Template I wanted to use.

I then created an item based off of the page template which I then hooked up to a Partial Page Design in the Page Design Field.

I then went in to the experience editor for that page item, and added all the components, set all the styles, widths etc.

I then enabled raw values and took a copy of the Final Rendering field and put that in the Final Rendering field of the $name item of my Branch Template.

Finally I went into Presentation Details on the $name item, and removed any links to any data-sources and saved.

It works like a charm, but I know its a hack!

0

TL/DR: You can modify the data sources on the pages, for the components that are defined in the partial designs by changing local:/Data/SomeDataItem to page:/Data/SomeDataItem

Details:

  • Let's say we've included Plain HTML Reusable component on partial page. enter image description here

  • While selecting the data source for this component, choose the Data folder and enter the name of the data source eg, html.

enter image description here

  • Open Control Properties for this component and check datasource, it will be local:/Data/html enter image description here

  • Change this datasource to page:/Data/html and Save the changes.

  • Now, use this partial design in page design and apply on the content page. Make sure to have the same folder structure to store the data items. You can create a new data folder using a template /sitecore/templates/Foundation/Experience Accelerator/Local Datasources/Page Data and under this data folder create the same component data item (/sitecore/templates/Feature/Experience Accelerator/Page Content/HTML Code in our case) and use the same name that we used in the partial design data folder.

enter image description here

With this, you will see content visible on your page is from page Datasource not from the partial page data source.

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.