21493 Posts in 5784 Topics by 2622 members
| Go to End | Next > | |
| Author | Topic: | 2265 Views |
-
can i execute function with variable in template ?

18 September 2009 at 1:50am
hi
is there any way to do something like that:
class Page_Controller extends ContentController {
function abc($x) {
$doSet = DataObject::get(
$obj = '$x',
$filter = "",
$sort = "RAND()",
$join = "",
$limit = $random
);
return $doSet;
}}
class PageOne_Controller extends Page_Controller {
}
class PageTwo_Controller extends Page_Controller {
}
ang now in template PageOne.ss return 'abc' function with 'x' like:
$abc(PageOne);
and in PageTwo.ss
$abc(PageTwo);
i had some problem with execute function in these way in templates so i ask you
-
Re: can i execute function with variable in template ?

18 September 2009 at 3:27pm
That should work - is there any error produced?
-
Re: can i execute function with variable in template ?

18 September 2009 at 4:02pm
You have a line $limit = $random and $random is not defined anywhere else. That should be changed eg $limit = "10".
You can also not pass variables into functions so if you are trying to do something like $abc($ClassName) this won't work.
-
Re: can i execute function with variable in template ?

3 October 2009 at 3:42am Last edited: 3 October 2009 3:43am
Sean it doesnt work
this is my code
class OkolicaMapaPage_Controller extends StronaPage_Controller {
function zajawka($zajawka) {
$x = str_replace("\n","<br />",$zajawka);
return $x;
}}
$zajawka('$Zajawka'); making error:
Parse error: syntax error, unexpected T_STRING, expecting ')' in C:\Windows\Temp\silverstripe-cacheC--serwer-strony-nd\.cacheC..serwer.strony.nd.themes.noclegi-dobczyce.templates.Layout.OkolicaMapaPage.ss on line 31
<script type='text/javascript'>
var mapa;
var geo;
function mapaStart() {if(GBrowserIsCompatible()) {
mapa = new GMap2(document.getElementById("mapa"));
mapa.setUIToDefault();
mapa.enableScrollWheelZoom();
mapa.setCenter(new GLatLng(49.97065584042108,19.90997314453125),9);geo = new GClientGeocoder();
<% control OkolicaPage %>
var adres = '$Title';
$zajawka($Zajawka);
//var zajawka = '$Zajawka;geo.getLatLng(adres,function(punkt) {
var marker = new GMarker(punkt,{title: adres});
//marker.opis = adres;
mapa.addOverlay(marker);
GEvent.addListener(marker,"click",function() {
//marker.openInfoWindowHtml(marker.opis);
});
return marker;
}); <<<<<<<<<<<<<< THIS IS LINE 31 <<<<<<<<<<<<<<<<% end_control %>
}
}</script>
<h2>
<% control OkolicaHolder_tytul %>
$Title:
<% end_control %>
</h2><ul class="reg_menu">
<li class="jasna">
<% control OkolicaMapaPage_tytul %>
<a href="$Link" title="$Title">Mapa</a>
<% end_control %>
</li>
<li class="ciemna">
<% control OkolicaHolder_tytul %>
<a href="$Link" title="$Title">Lista miejscowości</a>
<% end_control %>
</li>
</ul><div id="box_jasny">
<div class="btop"></div>
<div class="bcont">
<div id="mapa" class="okolica"></div>
</div>
<div class="bbot"></div>
</div>
<div class="clear"></div> -
Re: can i execute function with variable in template ?

3 October 2009 at 4:31am
try without using quotes
example :
$zajawka(Zajawka);
-
Re: can i execute function with variable in template ?

3 October 2009 at 11:35am
no it is not this
function replace_str($y) {
$x = str_replace("e","eee",$y);
echo $x;
}$replace_str(aea); => aeeea
$text = "aea";
$replace_str($text) => ERROR
$replace_str(text) => teeextbut i must use this function in this way $replace_str($text)
-
Re: can i execute function with variable in template ?

3 October 2009 at 3:04pm
are you using this to do some sting replace of a field of the dataobject?
if that case you can have a code like this on your controller;
function replace_str() {
$x = str_replace("e","eee",$this->y);
echo $x;
}Make sure $this->y is the field;
then call it from the template like $replace_str
-
Re: can i execute function with variable in template ?

3 October 2009 at 10:23pm
ok it works now but i cant use it in other <% control %>
OkolicaMapaPage.ss
<% control OkolicaPage %>
$replace_str;
<% end_control %>class OkolicaMapaPage_Controller extends Page_Controller {
function replace_str() {
$x = str_replace("e","eeee",$this->Title);
echo $x;
}}
class Page_Controller extends ContentController {
function OkolicaPage() {
$obiekty = DataObject::get(
$callerClass = 'OkolicaPage',
$filter = '',
$sort = '',
$join = '',
$limit = ''
);
return $obiekty;
}}
| 2265 Views | ||
| Go to Top | Next > |




