@James - The code I have up there should produce the error. Throw the
$this-> object reference in front of the html->link() to get the
reference to a non-object error

@Martin - Are you sure you can do that with an object? I think Global
can only be applied to variables, no? I'll try it out of curiosity.

@Grigri - Ultimately, a helper makes most sense, I agree. I'll be able
to extend it with the Html class and reference the whole object from
within the function.

Thanks for all the help.

On Aug 12, 7:51 am, grigri <[email protected]> wrote:
> 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/f3a8243e...
> 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 <[email protected]> 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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to