Hi Josh,

With that sort of code, you'd be better off putting it in your own
helper. That helper can load its own helpers, so doing links wouldn't
be a problem.

This thread: 
http://groups.google.com/group/cake-php/browse_thread/thread/f3a8243e2226c696
deals with this approach, but for radio boxes not links; the principle
is the same though.

Cheers
grigri

On Aug 12, 12:02 am, Josh <joshs.silver...@gmail.com> wrote:
> Hi,
>
> I have the contents of a tree menu stored in a multi-dimensional
> array. The number of dimensions is not fixed, so to turn the array
> into a menu in the View file, I have set up a recurring function. This
> works fine except that I can't call the $html->link() from the
> function.
>
> Fatal error: Call to a member function link() on a non-object in...
>
> Any ideas? Is there a way to make the link() function global as you do
> a variable? There are some obvious work-arounds such as writing the
> anchor tag without the html helper, or turning the link array into a
> simpler two dimensional array where I can then iterate the link()
> function. However, I am wonder how I might specifically address the
> question of making the html->link() function available to a function
> within a view file.
>
> I have a feeling this is either going to be a simple declaration or
> not worth the trouble. Thanks in advance.
>
> Here is my code:
>
>     //array of links
>     ////key: link title
>     ////value: link location or sub-array
>     $linkTree = array(
>         'User Management' => array(
>             'Permissions' => array(
>                 'Set Permissions' => '/tools/setPermissions',
>                 'Update ACOS' => '/tools/updateacl',
>                 'View/Edit Groups' => '/admin/groups'
>             ),
>             'User Settings' => '/tools/userSettings',
>             'Users' => array(
>                 'List' => '/admin/users',
>                 'Add User' => '/admin/users/add'
>             )
>         )
>     );
>
>     //output menu function
>     function outputMenu ($array, $level) {
>         global $levelMarker;
>
>         foreach ($array as $key => $value) {
>             if (is_array($value)) {
>                 echo $level . $key;
>                 echo '<br>';
>                 outputMenu($value, $level . $levelMarker);
>             } else {
>                 echo $html->link("$level$key", $value);
>                 echo '<br>';
>             }
>         }
>         echo "<br>";
>     }
>
>     //output menu settings
>     $levelMarker = '-';
>     $level = '';
>     $linkTreeSimple = array();
>
>     //output menu
>     outputMenu($linkTree, $level);
--~--~---------~--~----~------------~-------~--~----~
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
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to