https://github.com/jbroadway/menubuilder
A menu builder app for the Elefant CMS using YAML files to define menus.
https://github.com/jbroadway/menubuilder
Last synced: 13 days ago
JSON representation
A menu builder app for the Elefant CMS using YAML files to define menus.
- Host: GitHub
- URL: https://github.com/jbroadway/menubuilder
- Owner: jbroadway
- Created: 2012-11-05T04:56:34.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-05-01T22:57:20.000Z (almost 12 years ago)
- Last Synced: 2025-04-09T21:52:07.387Z (13 days ago)
- Language: PHP
- Size: 229 KB
- Stars: 4
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Menu Builder
A menu builder for the [Elefant CMS](http://www.elefantcms.com/)
based on using [YAML](http://www.yaml.org/) formatting to define
as many custom menus as you want.Menu Builder then provides a set of dynamic menu objects for
embedding your menus into your website through the WYSIWYG
editor's Dynamic Objects dialog.Menu Builder works as an alternative to Elefant's built-in
single-tree navigation app. Editing menus as YAML files may
not be for everyone, but the added flexibility will hopefully
be useful to some.## Formatting
Here is an example menu:
```yaml
# This file defines a menu structure in your website.
# For formatting info, visit:
# https://github.com/jbroadway/menubuildermenu:
- label: Home
page: index
class: menu-home
- label: Blog
link: /blog
class: menu-blog
- label: Services
page: services
menu:
- label: Web Design
page: web-design
- label: Social Media
page: social-media
- label: Branding
page: branding
- label: Contact Us
page: contact-us
```Each menu starts with a top-level `menu:` section.
Each section contains one or more items with the following properties:
* label - The text to display in the link.
* page - The ID of the page in the site.
* link - An external link instead of specifying an internal page.
* class - A CSS class to assign to the item in HTML tags.
* menu - A list of sub-items.The label and either page or link are required. The rest is optional.
Menu files are saved in the `conf/menubuilder` folder as `.yml` files.
## Integration
You can integrate menus into your site in one of two ways:
1. In the WYSIWYG editor's Dynamic Objects dialog, you'll see a number
of new objects like `Menu: Breadcrumb` and `Menu: Contextual`. These will
embed different kinds of menus into your page.2. In your layout templates, you can include a menu directly with the
following tags:{! menubuilder/menu/breadcrumb?menu=Main !}
{! menubuilder/menu/contextual?menu=Main !}
{! menubuilder/menu/dropmenu?menu=Main !}
{! menubuilder/menu/single?menu=Main !}
{! menubuilder/menu/sitemap?menu=Main !}