Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Archive

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, biapar, Willr, Ingo, simon_w

How to use <% control %> and <% if %>


Reply

4 Posts   1481 Views

Avatar
Tkop

18 July 2007 at 7:47pm 28 Posts

I'm having problems using the controllers. I can get it working for single variable returns
see BannerImg (I'm using it as text for now just to test) below but am unable to get
getChildrenof(title) to work. Below are the portions of the *.code and Layout/*.ss files
and the error I get. I've gone through the all the tuorials and the documantation on the site.
Also I get errors when I try to put Debug::message("hello") and Debug::show($variable)
in either the *.code or *.ss file how are you suposed to call them?

----------------------------------------------------------------------------------------------------------------
SectionHolder.php
class SectionHolder_Controller extends Page_Controller {
function BannerImg() {
return $this->BannerImg;
}
function getChildrenOf($searchtitle) {
$data = DataObject::get($searchtitle, "ShowInMenus = 1");
return $data->Children();
}
}
-------------------------------------------------------------------------
SectionMenu.ss
<% if Menu(2) %>
<p>$BannerImg</p>
<ul id="Menu2">
<% control Menu(2) %>
<div id="subh2"> <div class="gla-r"> <div class="gla-l">
$MenuTitle
</div></div></div>
<% control getChildrenOf($Title) %>
<li class="$LinkingMode"><a href="$Link" title="Go to the $Title page">$MenuTitle</a></li>
<% end_control %>
<% end_control %>
</ul>
<% end_if %>

-------------------------------------------------------------------------
error I get:
Parse error: syntax error, unexpected '}' in /tmp/silverstripe-cache/.cache.var.www.html.gla.mysite.templates.Layout.SectionHolder.ss on line 57

Avatar
Willr

18 July 2007 at 9:16pm Forum Moderator, 5511 Posts

you have the function in the class SectionHolder.php and you are trying to call it from a template SectionMenu.ss? Im guessing you are including SectionMenu.ss in SectionHolder.ss

Avatar
Andy

19 July 2007 at 12:10am 230 Posts

<% control Children %> should work fine, I'm not sure what getChildrenOf() is supposed to do?

Avatar
Tkop

19 July 2007 at 3:51am 28 Posts

Willr - Yes SectionMenu is an Include to SectionHolder.ss.

Andy - <% control Children %> is what I wanted. I thought I tried
that before and got errors so I tried to write getChildrenOf() to get
the children of a particular page by its Title. I just tired using Children
and got the results that I wanted Thanks

But for future reference can you see why the getChildrenOf() did not
work? Am I misunderstanding the use of "control" or the way the
"DataObject::get" works.