this code is for cake TO 1.2. This code will fail on newer versions of cake
--
Lep pozdrav, Tilen Majerle
http://majerle.eu



2012/7/13 Ain Devonshire <[email protected]>

> can you translate this to english?what is maak?
>
>
> On Saturday, June 9, 2007 5:01:29 PM UTC+8, Watcher wrote:
>>
>> This is how I fixed this kind of thing:
>>
>> Model:
>> class Menu extends AppModel {
>>         var $name = 'Menu';
>>
>>         // model validation
>>         var $validate = array(
>>                 'naam'        **=> VALID_NOT_EMPTY,              **  //
>> backwards compatible
>>         );
>>
>>         function maakMenu($belongs_id = '0') {
>>                 $menu_voor_**view = array();
>>                 $menuitems = $this->findAll("belongs_to = '$belongs_id'",
>> '',
>> 'Menu.zwaarte ASC');
>>                 foreach($**menuitems as $item) {
>>                         $item = $item['Menu'];
>>                         if ($item['url'] == '') {
>>                               **  $submenu =
>> $this->maakMenu($item['id']);
>>                               **  $menu_voor_view[$item['naam'**]] =
>> $submenu;
>>                         } else if ($item['sub'] == '1') {
>>                               **  $submenu =
>> $this->maakMenu($item['id']);
>>                               **  $menu_voor_view[$item['naam'**]] =
>> $item['url'];
>>                               **  $menu_voor_view[$item['naam'**].'.sub']
>> = $submenu;
>>                         } else {
>>                               **  $menu_voor_view[$item['naam'**]] =
>> $item['url'];
>>                         }
>>                 }
>>                 return $menu_voor_view;
>>         }
>> }
>>
>> $menu_voor_view = array to return
>> naam = link name
>> submenu = int to indicate if this menu has submenu's or not, so as to
>> allow a topcategory to have a url and subitems (it normally assumes
>> that if no url is there, it must have a submenu)
>> belongs_to = id of topcategory
>> zwaarte = shows the location of a specific menu in the list of all
>>
>> Controller:
>> class MenuController extends AppController {
>>         var $name = 'Menu';
>>
>>         function maakMenu($belongs_to = '0') {
>>                 if (isset($this->params['**requested'])) {
>>                         $menu = $this->Menu->maakMenu($**belongs_to);
>>                         return $menu;
>>                 } else {
>>                         $this-**>redirect('/');
>>                 }
>>         }
>> }
>>
>> this just returns the menu array made in the model (and as it is
>> recursive there, it returns a complete menu array)
>>
>> To include a menu on a view, I created an element and that is
>> rendered:
>> $menu = $this->requestAction('menu/**maakMenu');
>>
>> function printSubMenu($submenu, $html, $eerste) {
>>         print '<ul';
>>         if ($eerste) {
>>                 print ' id="nav"';
>>         }
>>         print '>';
>>
>>         foreach($submenu as $naam => $url) {
>>                 // checking for submenu
>>                 if (!ereg('.*\.sub', $naam)) {
>>                         print '<li>';
>>                         if (is_array($url)) {
>>                               **  echo $html->link($naam, '#');
>>                               **  printSubMenu($url, $html, false);
>>                         } else if (isset($submenu[$naam.'.sub'])**) {
>>                               **  echo $html->link($naam, '#');
>>                               **  printSubMenu($submenu[$naam.**'.sub'],
>> $html, false);
>>                         } else {
>>                               **  echo $html->link($naam, $url);
>>                         }
>>                         print '</li>';
>>                 }
>>         }
>> }
>>
>> // $html is needed to use the $html helper functions!
>> printSubMenu($menu, $html, true);
>>
>>  --
> Our newest site for the community: CakePHP Video Tutorials
> http://tv.cakephp.org
> Check out the new CakePHP Questions site http://ask.cakephp.org and help
> others with their CakePHP related questions.
>
>
> To unsubscribe from this group, send email to
> [email protected] For more options, visit this group
> at http://groups.google.com/group/cake-php
>

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to