Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Update documentation again

  • Loading branch information...
commit 25f3fd4162539d95a19c9f2e8663ecead5aea0b1 1 parent 8d7994f
Zenobius Jiricek authored
Showing with 52 additions and 16 deletions.
  1. +52 −16 README.md
68 README.md
@@ -13,10 +13,7 @@ administration interface.
## Installation
1. make sure you are using a python virtual environment
-
- virtualenv ~/Dev/virtualenv/projectname;
- . ~/Dev/virtualenv/projectname/bin/activate;
- cd ~/Dev/projects/projectname/;
+ `mkdir -p ~/Dev/virtualenv && virtualenv ~/Dev/virtualenv/projectname && . ~/Dev/virtualenv/projectname/bin/activate && mkdir -p ~/Dev/projects/projectname/ && cd ~/Dev/projects/projectname; `
2. install it from pypi
@@ -48,23 +45,61 @@ the template selector combo dropdown in the admin interface.
For example, if your django project was at :
- `~/Dev/Django/MyProjectName/`
+ ~/Dev/Django/MyProjectName/
And you had a django application named `SomethingSomethingSomething` at :
- `~/Dev/Django/MyProjectName/SomethingSomethingSomething/`
+ ~/Dev/Django/MyProjectName/SomethingSomethingSomething/
Then templates for this plugin could be found at :
- `~/Dev/Django/MyProjectName/SomethingSomethingSomething/templates/cmsplugin_embeddedmenu/layouts/*.html`
+ ~/Dev/Django/MyProjectName/SomethingSomethingSomething/templates/cmsplugin_embeddedmenu/layouts/*.html
In fact, anywhere django looks for templates, you can place the following tree :
-```
/cmsplugin_embeddedmenu
/layouts
/*.html
-```
+
+### Purpose of Templates
+
+#### Containers
+
+These are the top most elements in any menuplugin that exists in a placeholder.
+
+By default it contains a H3 element and DIV element with the following attribtues :
+
+*H3*
+
+ * Text: `MenuTitle`, input from plugin settings
+ * Text: `MenuSubtitle`, input from plugin settings
+
+*DIV*
+
+ * `id='cms-menu-{{ plugin.id }}'`, where plugin.id matches the instance of the settings model for that menu.
+ * `class='cms-plugin cms-menuplugin'`
+ * `data-plugin-position={{ plugin.position}}`, sorted position within the placeholder.
+
+#### Menus
+
+These wrap each branch in a menu, they pull in each menu item node with the template selected from the
+next template group `cmsplugin_embeddedmenu/layouts/items/*.html`
+
+By default, menu branchs are displayed as un-orderded lists (UL) with no attributes.
+
+#### Items
+
+Renders each menu item node as a list-item(LI) with the following attributes:
+
+*LI*
+
+ * `class='selected ancestor sibling descendant'`
+ * `selected` applies if the node matches the page being viewed
+ * `ancestor` applies if it contains a menu branch.
+ * `data-node-depth={{item.level}}`, how deep in the tree this node is.
+
+If this node is a parent to other pages, then it will include the chosen `Menus` template inside the `LI` after the `A`
+
### Customising Templates
@@ -73,9 +108,11 @@ Templates in all groups are provided the context :
a CMSPlugin has many useful attributes for you to use, the main one
is `plugin.instance` a reference to the settings model.
-> plugin' :
-> An instance of CMSPlugin, which itself provides reference to either
-> of the settings models as outlined below.
+
+ plugin :
+ An instance of CMSPlugin, which itself provides reference
+ to either of the settings models as outlined below.
+
#### base.html
@@ -87,11 +124,10 @@ selected template chosen in the administration interface.
templates here are provided the context :
-> plugin.instance
-> template
-> Chosen template.
->
+ plugin.instance
+ template
+ Chosen template.
## Contributions
Please sign in to comment.
Something went wrong with that request. Please try again.