├── app
├── code
│ └── community
│ │ └── JR
│ │ └── CleverCms
│ │ ├── Model
│ │ ├── Cms
│ │ │ ├── Page
│ │ │ │ └── Permission.php
│ │ │ └── Page.php
│ │ ├── Resource
│ │ │ ├── Setup.php
│ │ │ ├── Sitemap
│ │ │ │ └── Cms
│ │ │ │ │ └── Page.php
│ │ │ └── Cms
│ │ │ │ ├── Page
│ │ │ │ ├── Permission.php
│ │ │ │ ├── Collection.php
│ │ │ │ └── Tree.php
│ │ │ │ └── Page.php
│ │ └── Adminhtml
│ │ │ └── Cms
│ │ │ └── Page
│ │ │ └── Observer.php
│ │ ├── Block
│ │ ├── Adminhtml
│ │ │ ├── Cms
│ │ │ │ └── Page
│ │ │ │ │ ├── Widget
│ │ │ │ │ └── Chooser.php
│ │ │ │ │ ├── Edit.php
│ │ │ │ │ ├── Permissions
│ │ │ │ │ └── Tree.php
│ │ │ │ │ └── Tree.php
│ │ │ └── Customer
│ │ │ │ └── Group
│ │ │ │ └── Switcher.php
│ │ ├── Cms
│ │ │ └── Page.php
│ │ └── Catalog
│ │ │ └── Navigation.php
│ │ ├── controllers
│ │ ├── Cms
│ │ │ └── IndexController.php
│ │ └── Adminhtml
│ │ │ └── Cms
│ │ │ ├── Page
│ │ │ └── PermissionsController.php
│ │ │ └── PageController.php
│ │ ├── sql
│ │ └── clever_cms_setup
│ │ │ ├── mysql4-upgrade-2.0.0-2.1.0.php
│ │ │ └── mysql4-install-0.1.0.php
│ │ ├── Helper
│ │ └── Cms
│ │ │ └── Page.php
│ │ └── etc
│ │ ├── system.xml
│ │ └── config.xml
├── etc
│ └── modules
│ │ └── JR_CleverCms.xml
├── design
│ ├── frontend
│ │ └── default
│ │ │ └── clever
│ │ │ └── template
│ │ │ └── catalog
│ │ │ └── navigation
│ │ │ └── top.phtml
│ └── adminhtml
│ │ └── default
│ │ └── clever
│ │ ├── template
│ │ ├── cms
│ │ │ └── page
│ │ │ │ ├── permissions
│ │ │ │ ├── index.phtml
│ │ │ │ └── tree.phtml
│ │ │ │ ├── ajax-edit.phtml
│ │ │ │ ├── store
│ │ │ │ └── switcher.phtml
│ │ │ │ ├── index.phtml
│ │ │ │ └── tree.phtml
│ │ └── customer
│ │ │ └── group
│ │ │ └── switcher.phtml
│ │ └── layout
│ │ └── local.xml
└── locale
│ └── fr_FR
│ └── JR_CleverCms.csv
├── README.md
└── CHANGELOG.md
/app/code/community/JR/CleverCms/Model/Cms/Page/Permission.php:
--------------------------------------------------------------------------------
1 | _init('cms/page_permission');
8 | }
9 | }
--------------------------------------------------------------------------------
/app/etc/modules/JR_CleverCms.xml:
--------------------------------------------------------------------------------
1 |
2 |
__('Manage Content Permissions') ?> |
5 | 6 | 7 | | 8 |
3 | 8 |
9 | 29 | 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Magento CMS pages as a tree structure 2 | 3 |  4 | 5 | ## Features 6 | * CMS pages as a tree structure, drag & drop pages 7 | * Restrict CMS pages access to customer groups (if enabled) 8 | * Create 301 permanent redirects for old urls (if enabled) 9 | * Manage a global tree and a store view independent tree 10 | * Frontend navigation 11 | 12 | ## Installation 13 | 14 | ### Magento CE 1.6+ 15 | 16 | Install with [modgit](https://github.com/jreinke/modgit): 17 | 18 | $ cd /path/to/magento 19 | $ modgit init 20 | $ modgit -e README.md -e CHANGELOG.md clone clever-cms https://github.com/jreinke/magento-clever-cms.git 21 | 22 | or download package manually: 23 | 24 | * Download latest version [here](https://github.com/jreinke/magento-clever-cms/downloads) 25 | * Unzip in Magento root folder 26 | * Clean cache 27 | 28 | ### Magento CE 1.4.x, 1.5.x 29 | 30 | **Compatibility of master branch is not guaranteed with versions of Magento above!** 31 | **Please download/clone 1.2 branch** 32 | 33 | Install with [modgit](https://github.com/jreinke/modgit): 34 | 35 | $ cd /path/to/magento 36 | $ modgit init 37 | $ modgit -e README.md -e CHANGELOG.md clone clever-cms https://github.com/jreinke/magento-clever-cms.git --branch 1.2 38 | 39 | or download package manually: 40 | 41 | * Download 1.2.x version [here](https://github.com/jreinke/magento-clever-cms/tags) 42 | * Unzip in Magento root folder 43 | * Clean cache 44 | 45 | ## Full overview 46 | 47 | I wrote an article on my blog for full extension overview, [click here](http://www.johannreinke.com/en/2012/01/10/magento-cms-pages-in-a-tree-structure/). 48 | -------------------------------------------------------------------------------- /app/code/community/JR/CleverCms/Block/Cms/Page.php: -------------------------------------------------------------------------------- 1 | getPage(); 8 | /* @var $page JR_CleverCms_Model_Cms_Page */ 9 | 10 | // show breadcrumbs 11 | if (!$page->isRoot() 12 | && Mage::getStoreConfig('web/default/show_cms_breadcrumbs') 13 | && ($breadcrumbs = $this->getLayout()->getBlock('breadcrumbs')) 14 | && ($page->getIdentifier() !== Mage::getStoreConfig('web/default/cms_home_page')) 15 | && ($page->getIdentifier() !== Mage::getStoreConfig('web/default/cms_no_route'))) 16 | { 17 | $breadcrumbs->addCrumb('home', array('label' => Mage::helper('cms')->__('Home'), 'title' => Mage::helper('cms')->__('Go to Home Page'), 'link' => Mage::getBaseUrl())); 18 | foreach ($page->getParentIds() as $k => $parentId) { 19 | $parent = Mage::getModel('cms/page')->load($parentId); 20 | if ($parent->getId() && $parent->getParentId()) { 21 | $breadcrumbs->addCrumb('cms_page_' . $k, array('label' => $parent->getTitle(), 'title' => $parent->getTitle(), 'link' => rtrim(Mage::getBaseUrl() . $parent->getIdentifier(), '/') . '/')); 22 | } 23 | } 24 | $breadcrumbs->addCrumb('cms_page', array('label' => $page->getTitle(), 'title' => $page->getTitle())); 25 | } 26 | 27 | $root = $this->getLayout()->getBlock('root'); 28 | if ($root) { 29 | $root->addBodyClass('cms-' . $page->getIdentifier()); 30 | } 31 | 32 | $head = $this->getLayout()->getBlock('head'); 33 | if ($head) { 34 | $head->setTitle($page->getTitle()); 35 | $head->setKeywords($page->getMetaKeywords()); 36 | $head->setDescription($page->getMetaDescription()); 37 | } 38 | 39 | return $this; 40 | } 41 | } -------------------------------------------------------------------------------- /app/design/adminhtml/default/clever/layout/local.xml: -------------------------------------------------------------------------------- 1 | 2 |3 | 26 |
27 | 47 | 48 | -------------------------------------------------------------------------------- /app/code/community/JR/CleverCms/etc/system.xml: -------------------------------------------------------------------------------- 1 | 2 |