[TYPO3-formidable] Mapping ajax events in xmlbuilder?

JéŽrô™me Schneider j.schneider at ameos.com
Thu Sep 23 14:56:21 CEST 2010


Hi,

You might try:

# CODE BEGIN --------------

$sPhp = <<<MYPHP
   return array(
     \$this->aORenderlets["sports_modalbox"]->majixCloseBox(),
     \$this->majixDebug("Hello world!"),
   );
MYPHP;

$aXml["renderlet-testing-".$sName] = array(
	// ...
	"onclick" => array(
		"runat" => "ajax",
		"userobj" => array(
			"php" => $sPhp,
		)
	)
)

# CODE END --------------


To insert PHP I used the HEREDOC syntax; for more informations about 
this syntax, see here: http://php.net/heredoc
* Note the \ in front of every $
* Note also that the closing MYPHP; has to be at the first position on 
the line (no whitespace before)

As a tip, for better readability, you might want to externalize your PHP 
events in codebehinds files. See here if you're interested:
http://formidable.typo3.ug/features/codebehind-syntax.html

Bye bye,
Jerome Schneider

Le 14/09/10 00:23, Andres Toomsalu a écrit :
> I havent found any example describing how to map ajax events userobj when using xmlbuilder - is it even possible?
>
> Can I do something like that:
>
> <xmlbuilder>
>                                  <userobj>
>                                          <php><![CDATA[
>
>                                              $aXml = array();
>
>                                              //setup renderlets array
>                                              $aMenuImages = array(
>                                                  "icon1" =>  '<img src="fileadmin/icons/icon1.jpg">',
>                                                  "icon2" =>  '<img src="fileadmin/icons/icon2.jpg">',
>                                                  "icon3" =>  '<img src="fileadmin/icons/icon3.jpg">',
>                                              );
>
>                                              //renderlet generation loop
>                                              while (list($sName, $sLabel) = each($aMenuImages)) {
>
>                                                  $aXml["renderlet-testing-".$sName] = array(
>                                                      "type" =>  "LINK",
>                                                      "name" =>  $sName,
>                                                      "label" =>  $sLabel,
>                                                      "style" =>  "cursor: pointer",
>                                                      "onclick" =>  'runat="ajax"', //<- how to map onclick userobj here?
>                                                   );
>                                              }
>                                              return $aXml;
>
>                                          ]]></php>
>                                  </userobj>
>                              </xmlbuilder>
>
> And would like these generated LINK elements have onlick section:
>
> <onclick runat="ajax">
>                                      <userobj>
>                                          <php><![CDATA[
>
>                                          return array(
>                                              $this->aORenderlets["sports_modalbox"]->majixCloseBox(),
>                                              $this->majixDebug("Hello world!"),
>                                          );
>
>                                          ]]></php>
>                                      </userobj>
>                                  </onclick>
>
> How to map this "onclick" event in xmlbuilder situation?
>
> Thanks in advance,
>



More information about the TYPO3-project-formidable mailing list