Hi Tristan, You should implement this as a Helper. I recommend this one as an example (I've used it myself): http://nooclear.com/content/cakephp-2x-menuhelper
Place this class in a file called MenuHelper.php in your /app/Views/Helpers directory. Then add the following to /app/Controllers/AppController.php: class AppController extends Controller{ public $helpers = array('Menu'); } Then inside of your views, whether it be your default layout, an individual view, or a nested view, add this: $menu = array( 'options' => array('class' => 'nav-style'), 'items' => array( array('title' => 'List Users', 'url' => array('controller' => 'users', 'action' => 'index')), array('title' => 'Add User', 'url' => array('controller' => 'users', 'action' => 'add')), ) ); print $this->Menu->render($menu); I recommend reading this for a better understanding of MVC ( http://book.cakephp.org/2.0/en/cakephp-overview/understanding-model-view-controller.html). It might be worthwhile searching for some other MVC tutorials as well until you're comfortable with your understanding of the concept. Cheers, Tim On Thu, Dec 6, 2012 at 5:53 AM, Trisztán Thar <triszta...@gmail.com> wrote: > Hello > > Please bear with my noobness, I am super new to CakePHP, and don't really > understand it yet. > > So, I was messing around with default.ctp, of course to make a layout for > my site. I followed the Blog Tutorial, and I am planning to build my site > on that. > I'd like to add a navigation menu, which would look like this in plain > HTML: > <div class='menubar'> > > <div class='menuitems'><a href='url_to_that_page'>First Page</a></div> > > <div class='menuitems'><a href='url_to_that_page2'>Second Page</a></div> > <div class='menuitems'><a href='url_to_that_page3'>Third Page</a></div> > <div class='menuitems'><a href='url_to_that_page4'>Fourth Page</a></div> > > </div> > > I saw that the layout file uses lots of CakePHP's built in function to add > divs and links, and I'd like to make this myself as well. > I have the following code in my default.ctp file: > > foreach ($menu as $Menu): > echo $this->Html->div('grid_12 menubar', $this->Html->div('menuitems > grid_3', $this->Html->link($menu['Menu']['item'], array('controller' => > 'Menu', 'action' => 'loadmenu')))); > endforeach; > unset ($menu); > > If i'm right, this would list my 4 menu items from my MySQL database. (I > didn't find a way to add multiple child items in the div() 'helper(?)', > this is why I have choosen to do it this way) > So, from my experiences of the Blog tutorial I made a model named Menu.php: > > class Menu extends AppMenu{ > } > > And i made a controller for that (MenuController.php) > (I actually don't understand a bit of this whole Model and Controller > thing, even thought I read the CookBook and documentation.. guess it'll > come in time) > > class MenuController extends AppController{ > public function loadmenu(){ > $this->set('Menu', $this->Menu->find('all')); > } > } > > Ok so i got all this, let's check how it works. Going to > localhost/website/posts i find this: > > *Notice* (8): Undefined variable: Menu [*APP\View\Layouts\default.ctp*, line > *44*] > > *Warning* (2): Invalid argument supplied for foreach() > [*APP\View\Layouts\default.ctp*, line *44*] > > > If i understand right, it does not pass the variable Menu from MenuController > to the layout file. > > Could someone please explain me how to do this, and why it didn't work? Also, > if you've got some free time, and could explain me (the simplest way) how > models and controller work (with views), i'd be really thankful. > > > Thanks a lot folks, > > Tristan > > -- > Like Us on FaceBook https://www.facebook.com/CakePHP > Find us on Twitter http://twitter.com/CakePHP > > --- > You received this message because you are subscribed to the Google Groups > "CakePHP" group. > To post to this group, send email to cake-php@googlegroups.com. > To unsubscribe from this group, send email to > cake-php+unsubscr...@googlegroups.com. > Visit this group at http://groups.google.com/group/cake-php?hl=en. > > > -- Like Us on FaceBook https://www.facebook.com/CakePHP Find us on Twitter http://twitter.com/CakePHP --- You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com. To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com. Visit this group at http://groups.google.com/group/cake-php?hl=en.