How to design a content model for a page with multiple sections in Headless CMS? - headless-cms

I have been looking into headless cms concepts and would like to design a page like below?
In an headless cms, we can create individual input pages with the respective content model, "main page" will have one and "company" will have one.
We cannot create an input page by combining these two input pages, as the page can have any number of company object, so i dont think we can combine these two input pages as one? correct me if its wrong.
And, how we can combine the "company" data with "main page" so that we can get the full page? how do we create this relationship in the content model? Please advise. thanks

Related

MVC 5 Use a shared header and footer layout across a site that loads different models on each page

I am trying to create a universal layout across my site. The layout is made up of the header and footer from 2 separate files. I have a file for the header called _LayoutHeader.cshtml and a file for the footer called _LayoutFooter.cshtml. I want all the pages to use this layout so that I do not continue to have repetitive code like writing the navigation menu and scripts that are in the head section and footer sections over and over on each page.
I load the header on all my pages by using the following at the top of the pages.
#RenderPage("~/Views/Shared/_Partials_and_Views/_LayoutHeader.cshtml")
The footer is loaded like this by me calling it at the bottom of all the pages.
#RenderPage("~/Views/Shared/_Partials_and_Views/_LayoutFooter.cshtml")
The _LayoutHeader.cshtml file contains the dropdown navigation with all the required links and all the CSS references, bootstrap references, scripts for APis that are involved as well as valuable SEO tags like description, title, index follow and no follow etc....
The _LayoutFooter.cshtml file contains more links that also navigate to different pages depending on where in the app you are clicking it from. If my client A clicks on his link called Files, he will see different content from my Client B and Client C that also click on their links called Files. So I use models to handle these clicks on those links.
These 2 files also include the call to a model that is used across the site.
#model MultiCMS.Models.tblClient .
There are some pages though that use a different model like this one:
#model MultiCMS.Models.tblProducts
How am I able to use that layout (the header and the footer combination mentioned above) on pages that call a different model on? By "model" I mean I am using entity framework and in order for me to load the data that I need on each page. I call these models at the top of the page to grab and display the data.
The issue I am having is that when I am trying to use that combo of the 2 layout files, its failing on the pages that are not using #model ClientsApp.Models.tblClient. Like in the case of the pages that use #model MultiCMS.Models.tblProducts it fails but works on other pages that use #model MultiCMS.Models.tblClient .
Error:
The model item passed into the dictionary is of type 'System.Data.Entity.DynamicProxies.tblProducts_A96074721A46B7C99112D6FEA49F0762848C8', but this dictionary requires a model item of type 'MultiCMSApp.Models.tblClient'. If I want to use the same layout on all the pages but some have different models than the layout pages what do I do ?
This is a web application built on asp.net MVC 5.

Camunda Modeler form fields organization

I wanna to use Camunda Modeler to create a complicated form cards for User Tasks consist about 20-30-50 fields divided in several tabs. Many cards will contain the same fields and fields groups. I wanna to have an ability to create and reuse fields groups or somewhat liked on fields groups. How can organize process with Modeler? What is the appropriate template? Or maybe you can recommend another tool?
I have a variant of template, but it's not clear for me now. The complicated form will be divided into several tabs. For example the card consists in 2 Tabs: Tab1 and Tab2. Then I can suppose that the card with active Tab1 is one state of the card, and the same card with active Tab2 - the another state. And then I can configure a scenario for each tab and transitions between tabs. Does it look believable?
Apparently, there are no standard solutions of such kind of issue. I'm going to make an integration form.io formBuilder into Camunda modeler instead standard form constructor. Maybe it looks madly, but I'm sure - it would be working. The formio has angular implementation of the constructor and modeler is based on the electron technologies. There are looks the same, and integration is not imagine as great headache. I hope. But I need a lot of time to do this.
We created our own framework with Scala / Play and Semantic-UI (Here you can use whatever technology you like).
You model the user form in the Camunda Modeler, using additional properties to describe the 'special' components, like File Upload, Field Grouping, Number Field, Radio Buttons etc.
We use then Play Templates / Semantic-UI to implement the generic Forms.
So in our implementation we use the defined properties to generate them in the Form.
So for example you can provide a property width. This value we use for the Semantic-UI layout which allows widths 1 to 16. So you have a simple possibility to have more than one component in one row.

CQ: Content centric OR page centric?

I have a query regarding CQ. Your reply will really make the difference to my understanding.
In other CMS like Vignette, content authors create the contents separately (not directly on the page) for ex. products details and then those contents are iterated / processed to display on the page. But in CQ, the scenario is other way round. Authors directly create the content on the page. Now if same content is needed on other page, how will that be re-used ?
Regards,
Ronak
Content can be reused across pages via Reference components. From the docs:
The Reference component lets you reference text in another part of a
CQ based website (within the current instance). The referenced
paragraph will then appear as if it was on the current page. Instead
of referencing a specific paragraph, the path can also be modified to
specify an entire [paragraph-system]...
There are some other techniques for sharing content and reference data across pages, including inheritance and "data components," described in this SO Q&A.

Best Product Listing Option for Concrete5

I'm going to be creating a Concrete5 website that will feature product listings. The listing system must offer all your typical ecommerce features, minus the ability to purchase items. It's strictly for browsing purposes only.
For example:
- Browse by category
- Search products
- Listings/results page with thumbnails and brief information (title, description, price in US/CAD, manufacturer, maker, etc.)
- Products single page (with detailed information, attributes and gallery/images)
All the things you'd expect to find in a listing system.
My issue is I can't find a specific add-on for something like product listings. This leaves me thinking that it may be best to use the e-commerce add on and do my best to hide anything related to the cart/payment process. That way it could just be used for everything else it offers.
What are your thoughts on this? Is there a better option?
Thanks for the advice!
Use the page list block. It has everything you need except for searching. But, in essence, that's what your requirements call for -- listing of pages.
Create a page type for your "product". The "brief information" can be in the Content block, or you can set as attributes. You'll probably want to make some minor changes to the block's view (by creating a new template) that displays the image as you want, the proper attributes, etc. Something similar to http://www.concrete5.org/documentation/how-tos/designers/styling-the-page-list-block/
There are several adanced page list blocks in the marketplace. You might want to start with those.
Right creat Page type.
After creat Page attributes.
Add a block page_list create a template for it and filter by attributes.
You can even use ajax to filter.
http://www.weblicating.com/doku/doku.php?id=cheatsheet/#.UbR7P0BmiSp
U can find here about page_list or read documentation Concrete5.

Cross area calls

I have an asp.net mvc 2 application with multiple areas . Each area contains its own nested master page.
Some times we need one area to use the partial functionality from the other area.
Ex: "Account area" contains a feature for managing all user's contacts. "Job area" wants to borrow contacts feature, but just for work contacts.
We cannot simply redirect from one area to other, as this will change the visual context for the user. We want the features of the second area to appear as if they belong to the first area.
Is there any clean way of achieving this?
your Partial functionality implemenetd using partial pages? then You can cosnider to add these partial pages in shared folder.