From 615c15d9a2001c58b2030c23b44f655b57dd21d0 Mon Sep 17 00:00:00 2001 From: "ctrlaltca@gmail.com" <> Date: Fri, 21 Oct 2011 14:00:46 +0000 Subject: removed TClientScriptLoader missed in r3039. Updated documentation --- .../protected/pages/Advanced/es/Scripts3.page | 52 ---------------------- 1 file changed, 52 deletions(-) (limited to 'demos/quickstart/protected/pages/Advanced/es') diff --git a/demos/quickstart/protected/pages/Advanced/es/Scripts3.page b/demos/quickstart/protected/pages/Advanced/es/Scripts3.page index 416df4f8..37885abb 100644 --- a/demos/quickstart/protected/pages/Advanced/es/Scripts3.page +++ b/demos/quickstart/protected/pages/Advanced/es/Scripts3.page @@ -36,56 +36,4 @@ and its dependencies will be automatically included on the page.

See TClientScript for options of adding your custom Javascript code to the page.

-

Publishing Javascript Libraries as Assets

- -

Use TClientScriptLoader to publish and combine multiple existing javascript files (e.g. javascript libraries distributed with Prado or otherwise) -as packages.

For greater control on what and when to publish, use the -registerJavascriptPackages($base, $packages, $debug=null, $gzip=true) -method in the TClientScriptManager class, which an instance can be obtained -using $this->getPage()->getClientScript() or its equivalents. -For example, if multiple controls will use the same set of javascript libraries, -write a class to handle the registration of packages required by those controls. -

- -class MyJavascriptLib extends TComponent -{ - private $_packages=array(); //keep track of all registrations - - private $_manager; - - protected function __construct(TPage $owner) - { - $this->_manager = $owner->getClientScript(); - $owner->onPreRenderComplete = array($this, 'registerScriptLoader'); - } - - public static function registerPackage(TControl $control, $name) - { - static $instance; - if($instance===null) - $instance=new self($control->getPage()); - $instance->_packages[$name]=true; - } - - protected function registerScriptLoader() - { - $dir = dirname(__FILE__).'/myscripts'; //contains my javascript files - $scripts = array_keys($this->_packages); - $url = $this->_manager->registerJavascriptPackages($dir, $scripts); - $this->_manager->registerScriptFile($url,$url); - } -} - -// example control class using the javascript packages -class TestComp extends TControl -{ - public function onPreRender($param) - { - parent::onPreRender($param); - MyJavascriptLib::registerPackage($this,'package1'); - } -} - - - -- cgit v1.2.3