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.
How to change design dialog content in specific locale?Example the design specific constructs that would be different accross locales were logo, branding elements etc... Please suggest various alternatives and best approaches?
Design dialog are not locale or site specific in case of multisites rolled out on same instance of AEM. Design dialog properties gets stored on template/component basis in designs (/etc/designs/<your-site>/jcr:content/<path/page component name>/<component>). You can look at the sample for geometrixx site # /etc/designs/geometrixx/jcr:content/page/logo
For the scenarios where in the content/imagery that needs to change per site/locales you should use normal dialogs.
For components like header and footer which needs to stay consistent across site and usually the requirement is that they should be authored once and not be edited every time a new page is created, you could use iparsys component for the inheritance of these sections to pages in the hierarchy. This would require the inheritance system to be setup on a base page/template from which other templates extend so that inheritance get extended to all templates.
I'm setting up Doxygen in my codebase and want to use the Markdown support to produce a number of different 'how to' and 'design' types page in a logical hierarchy, e.g.
index.md
design/
architecture.md
database.md
how-to/
build.md
restore-backups.md
...etc...
Using the Markdown support, I can give labels to each page and then use those to link to other pages and create a page hierarchy, e.g.
Design {#design}
======
This section contains design documentation.
#subpage architecture
#subpage database
The problem I've got is that this means every level in the hierarchy needs to define which pages are its sub-pages. This litters the documentation with lots of links which I don't really need. When the hierarchy gets 3+ levels deep you end up with lots of dummy pages which only exist to define the subpages.
My question is, is it possible to define the entire navigation hierarchy in one external page so that I only have one place to define and update when new pages are added? Something like:
Navigation {#navigation}
=========
This page defines the navigation tree for the whole project.
#page design
#subpage architecture
#subpage database
#page how-to
#subpage build
... etc ...
Let's say that I have a vast quantity of restaurant reviews in a database -- not Joomla articles, just database tables. I want to display these restaurant reviews as part of a Joomla 1.5 web site.
I can write a component to display each review. That part is fine. But rather than listing the reviews as a list on a page, I want to use the nice cascading menu that is part of the Joomla template that the site uses. But I don't want to have to add menu items one by one for each review; I want menu items to be generated automatically from the database contents. The menu of reviews should 'plug in' the existing menu structure for the web site (i.e., I want to supply the code that generates the menu items with an existing menu item so that it generates itself under that item).
How can I create code to programmatically create that menu? Component, plug-in, module, ...? Would the menu be generated at page display time, or "manually" in the admin panel (I'm ok either way). Any examples of this already?
I think the simplest way would be to create a custom menu module. The absolute basic one would just output the list of reviews in a <ul> and then use some css to style the list.
I ended up creating a component that creates the whole menu structure at once, upon admin request. It just creates rows in the jos_menu table, as if the menus were created manually. Updating the hierachy is a pain (and I haven't completed that part), but creating the structure from scratch is pretty simple and works well.
What is the difference between Joomla components, modules, extensions and plugins?
Plugins
Plugins enable you to execute code in response to certain events, either Joomla core events or custom events that are triggered from your own code. This is a powerful way of extending the basic Joomla functionality.
Components
Components are the main functional units that display in your template, like the content management system, contact forms, Web Links and the like. They are usually displayed in the center of the main content area of a template (depending on the template).
Modules
A more lightweight and flexible extension used for page rendering is a module. Modules are used for small bits of the page that are generally less complex and able to be seen across different components. Sometimes modules are linked to a component such as the core latest news module.
Extensions
Components, languages, modules, plugins and templates collectively known as Extensions.
Quickstart tutorial for free.
Components
A component is a separate application. You can think of a component as something that has its own functionality, its own database and its own presentation.
So, if you install a component, you add an application to your website. Examples of components are
a forum
a newsletter
a community system
a photo gallery
You could think of all of these as being a separate application. Each of these would make perfectly sense as a stand-alone system.
A component will be shown in the main part of your website and only one component will be shown. A menu is then nothing more than a switch between different components. You can compare it a bit with your windows taskbar, where you see a tab for each open application.
Modules
Modules are extensions which present certain pieces of information on your site. It's a way of presenting information that is already present. This can add a new function to an application, which was already part of your website.
Think about
latest article modules
login module
a menu
Typically, you'll have a number of modules on each web page.
The difference between a component and a module is not always very clear. A module doesn't make sense as a standalone application, it will just present information or add a function to an existing application.
Take a newsletter for instance. A newsletter is a component. You can have a website which is used as a newsletter only. That makes perfectly sense. Although a newsletter component probably will have a subscription page integrated, you might want to add a subscription module on a sidebar on every page of your website. You can put this subscribe module anywhere on your site. You'll probably agree with me that a site with just a subscription module and no actual newsletter component would be rather ridiculous.
Plugins
They used to be called mambots in Joomla 1.0.x, but since Joomla 1.5.x they're called plugins. A plugin is a function which is performed on a part of Joomla before this part is shown. This part can be on content, on the editor, on the complete system, etc. This might seem a bit abstract, but you'll understand it with an example.
Let's take one of the plugins of Ulti Joomla as an example: Ulti Reflection. This is a plugin which can make a reflection of the images you use in your content articles. To use this you just have to put something like
inside your content. Before the content is shown to the user, the Ulti Reflection plugin will scan the content to find the {reflection} tag. If it finds the tag, it will replace the tag with the image and its reflection.
Be carefull not to put to many plugins one your website, because some of them can really slow down your site.
If the difference between the three types of extensions is still not completely clear, then I advice you to go to admin pages of your joomla installation and check the components menu, the module manager and the plugin manager. Joomla comes with a number of core components, modules and plugins. By checking what they're doing, the difference between the three types of building blocks should become clear. You can also check out the official Joomla extensions page. Browse through the extension categories and you'll be amazed about the extension possiblities you have for your site.
Modules and components are displayed on a page.
Plugins operate behind the scenes and can do a multitude of things, like replacing content with other content, perform searches, perform login/logout functions, or anything really tricky that you can imagine.
There can only ever be one component on a page. When you choose menu items, you are actually choosing the component that you wish a page to display. The variables for the component are stored once (in the database), so you can't have multiple instances of the component!
On the other hand, modules are added multiple times. You can have many modules on the one page. In fact, you could have 100 instances of the same module on the one page. The variables for a module are stored against each instance. (in the database).
This is why joomla templates have one place holder for a component, and many place holders for modules.
A module can be added to an individual page (menu item) , or seleceted pages, or all pages.
Remember that a menu item is indeed a component choice. Each menu item does store variables in the database, so it is possible to feed the component display details. E.g. what page id the content component is to display.
In the back end, components can have many backend settings and functions, and "do" many more things than a module.
Examples of a component are:
com_content (displays articles...)
a bulletin board
a forum
a sitemap
Examples of a module:
a countdown clock
top 10 most read content
a poll
Unless you understand the difference between a module and a component, you will find it very difficult to administer your Joomla installation.
Modules
Modules are usually small pieces of functionality designed to present information in your site. They can appear a number of times, on a number of pages in various positions. On the contrary components are a full blown application, usually quite complex and are to the main body if a page. Also each module can be viewed in various pages, and the position of each module can be easily changed. You are allowed to select the menu items where a module is displayed. A good example of the usage of this functionality is targeted advertising. If your site has various sections, you can create module for each section. Each module will contain a targeted advert for the section. Now instead of showing all the modules, all the time, you customise the visibility of the module such that each advert is displayed only in the relevant menu links. Typical examples of standard Joomla modules are : Main / User / Top and other menus, Latest News, Popular Articles, Polls, Login Form, Syndication Details etc.
Components
On the other hand, a Joomla component is typically more complex, with extensive functionality and capabilities. A component can only be displayed in the main area of a page, and can only be displayed in a single page (usually). Links to components are usually done by creating menu items. Components usually have a particular page or pages for their configuration.
Extensions
Joomla extensions extend the functionality of Joomla websites. Five types of extensions may be distinguished: components, modules, plugins, templates, and languages. Each of these extensions handles a specific function.
Comdev is a Joomla development services provider, which provides varirties of extensions like: JomOffers, JomDirectory, JomHoliday 3, JomEstate, JomEvents.
Source: http://comdevjoomla.blogspot.com/