From 14ed823994d40b299914b980af6e4dbffb9c2198 Mon Sep 17 00:00:00 2001 From: kabayan <> Date: Tue, 21 Aug 2007 14:34:36 +0000 Subject: Indonesian quickstart/protected/pages/Advanced --- .../protected/pages/Advanced/id/Scripts3.page | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 demos/quickstart/protected/pages/Advanced/id/Scripts3.page (limited to 'demos/quickstart/protected/pages/Advanced/id/Scripts3.page') diff --git a/demos/quickstart/protected/pages/Advanced/id/Scripts3.page b/demos/quickstart/protected/pages/Advanced/id/Scripts3.page new file mode 100644 index 00000000..cffe4904 --- /dev/null +++ b/demos/quickstart/protected/pages/Advanced/id/Scripts3.page @@ -0,0 +1,84 @@ + +

Javascript dalam PRADO, Pertanyaan dan Jawaban

+

Bagaimana saya menyertakan librari Javascript yang didistribusikan dengan Prado?

+

Librari javascript yang didistribusikan dengan Prado dapat ditemukan dalam direktori +framework/Web/Javascripts/source. File packages.php +dalam direktori itu mendefinisikan daftar nama paket yang tersedia yang diambil. Itu bisa diambil seperti berikut. +

+ +Paket librari yang tersedia disertakan dalam Prado adalah + + +

Ketergantungan masing-masing librari secara otomatis dipecahkan. Komponen yang memerlukan libari tertentu juga akan secara otomatis mengambil librari yang diperlukan. +Sebagai contoh, jika anda menambah komponen TDatePicker pada halaman, datepicker dan dependensinya akan secara otomatis disertakan pada halaman.

+ +

Lihat TClientScript untuk opsi penambahan kode Javascript kustom anda ke halaman.

+ +

Menerbitkan Librari Javascript sebagai Assets

+ +

Gunakan TClientScriptLoader untuk menerbitkan dan menggabung file javascript yang sudah ada (misalnya librari javascript yang didistribusikan dengan Prado atau sebaliknya) sebagai paket.

Untuk kontrol yang lebih besar pada apa dan kapan untuk menerbitkan, gunakan metode +registerJavascriptPackages($base, $packages, $debug=null, $gzip=true) +dalam kelas TClientScriptManager, yang turunannya bisa diperoleh dengan $this->getPage()->getClientScript() atau persamaannya. +Sebagai contoh, jika multipel kontrol akan memakai set librari javascript yang sama, tulis sebuah kelas untuk menangani registrasi paket yang diperlukan oleh kontrol tersebut. +

+ +class MyJavascriptLib extends TComponent +{ + private $_packages=array(); //perlihara seluruh registrasi + + 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'; //berisi file my javascript + $scripts = array_keys($this->_packages); + $url = $this->_manager->registerJavascriptPackages($dir, $scripts); + $this->_manager->registerScriptFile($url,$url); + } +} + +// contoh kelas kontrol menggunakan paket javascript +class TestComp extends TControl +{ + public function onPreRender($param) + { + parent::onPreRender($param); + MyJavascriptLib::registerPackage($this,'package1'); + } +} + + + +
$Id: Scripts3.page 1902 2007-05-07 04:17:37Z wei $
\ No newline at end of file -- cgit v1.2.3