Pod-enabling a theme

There are two types of pods that can be shown: template pods and plugin pods. A theme can create any number of template pods, and these are subject to pod management from the Administration. Template pods can take advantage of the theme's underlying html, since they are part of the theme and have knowledge of the styling and layout specific to the theme. Plugin pods are more general, since they should be able to applied to any theme.

A theme decides where pods will be shown. These places are identified by an id, and are registered in the skin.xml file. Suppose a theme contains a sidebar, then the theme will register a location with id "sidebar". The skin.xml will contain:

<?xml version="1.0" encoding="UTF-8"?>
<skin...>
   ... skin properties ..
   
   <podLocations>
      <location id="sidebar" name="Sidebar">
      </location>
   </podLocations>
   
</skin>

Within this sidebar, the theme has a pod that shows categories, so that pod is registered in the skin.xml as well:

<location id="sidebar" name="Sidebar">
   <pod id="categories">Categories</pod>
</location>

There could be any number of pod locations and any number of pods within each location.

In the theme files (index.cfm, post.cfm, etc) these pods are shown. The pod location should be defined with the <mangox:PodGroup> tag.

<mangox:PodGroup locationId="sidebar">

</mangox:PodGroup>

Any template pod should be placed within the PodGroup with a <mangox:TemplatePod> tag. These template pods should match order and id registered in the skin.xml file.

<mangox:PodGroup locationId="sidebar">
   <mangox:TemplatePod id="categories">
      <!--- code that outputs categories, including any needed html --->
   </mangox:TemplatePod>
</mangox:PodGroup>

For these pods to be shown, the PodGroup needs to output all the pods, including pods added by plugins with the <mangox:Pods> and <mangox:Pod> tags:

<mangox:PodGroup locationId="sidebar">

   <mangox:TemplatePod id="categories">
      <!--- code that outputs categories, including any needed html --->
   </mangox:TemplatePod>
   
   <mangox:Pods>
      <mangox:Pod>
         <mangox:PodProperty content />
      </mangox:Pod>
   </mangox:Pods>
   
</mangox:PodGroup>

You can add html content within the Pod tags.