summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Bas <ctrlaltca@gmail.com>2015-11-09 00:33:08 +0100
committerFabio Bas <ctrlaltca@gmail.com>2015-11-09 00:33:08 +0100
commit151b2f7d102a5988b63255d27c9ad78202c16355 (patch)
treeeb5a790407c79ea3a2c74e26c1d97473effae2a2
parentc198ade3610cecd190b74d8519947ad734a0bcca (diff)
Added (partial) website + misc updates for release
* recreated the prado website in demos/ * updated some docs to reflect the usage of jquery; removed guide to prototype * updated composer * added task for apigen4 (theme still missing)
-rw-r--r--.gitignore6
-rw-r--r--HISTORY4
-rw-r--r--build.xml21
-rw-r--r--buildscripts/phing/tasks/ApiGen4Task.php435
-rw-r--r--buildscripts/texbuilder/quickstart/pages.php43
-rw-r--r--composer.json22
-rw-r--r--composer.lock1285
-rw-r--r--demos/quickstart/protected/controls/TopicList.tpl2
-rwxr-xr-xdemos/quickstart/protected/controls/de/TopicList.tpl2
-rw-r--r--demos/quickstart/protected/controls/es/TopicList.tpl2
-rw-r--r--demos/quickstart/protected/controls/fr/TopicList.tpl2
-rw-r--r--demos/quickstart/protected/controls/id/TopicList.tpl2
-rw-r--r--demos/quickstart/protected/controls/ja/TopicList.tpl2
-rw-r--r--demos/quickstart/protected/controls/pl/TopicList.tpl2
-rw-r--r--demos/quickstart/protected/controls/zh/TopicList.tpl2
-rw-r--r--demos/quickstart/protected/pages/ActiveControls/ActiveRatingList.page2
-rwxr-xr-xdemos/quickstart/protected/pages/ActiveControls/Introduction.page4
-rwxr-xr-xdemos/quickstart/protected/pages/Advanced/Scripts1.page96
-rwxr-xr-xdemos/quickstart/protected/pages/Advanced/Scripts2.page253
-rwxr-xr-xdemos/quickstart/protected/pages/Advanced/Scripts3.page29
-rwxr-xr-xdemos/quickstart/protected/pages/Advanced/es/Scripts1.page96
-rwxr-xr-xdemos/quickstart/protected/pages/Advanced/es/Scripts2.page253
-rwxr-xr-xdemos/quickstart/protected/pages/Advanced/id/Scripts1.page86
-rwxr-xr-xdemos/quickstart/protected/pages/Advanced/id/Scripts2.page214
-rwxr-xr-xdemos/quickstart/protected/pages/Controls/HtmlArea4.page2
-rw-r--r--demos/quickstart/protected/pages/Controls/Markdown.page2
-rw-r--r--demos/quickstart/protected/pages/Database/ViewsArUpdate.page14
-rwxr-xr-xdemos/quickstart/protected/pages/Fundamentals/Pages.page2
-rw-r--r--demos/quickstart/protected/pages/GettingStarted/CommandLine.page12
-rwxr-xr-xdemos/quickstart/protected/pages/GettingStarted/Installation.page4
-rw-r--r--demos/quickstart/protected/pages/GettingStarted/Upgrading32.page8
-rw-r--r--demos/quickstart/protected/pages/GettingStarted/Wsat.page10
-rw-r--r--demos/quickstart/protected/pages/JuiControls/Home.page10
-rw-r--r--demos/quickstart/protected/pages/JuiControls/Interactions.page12
-rw-r--r--demos/quickstart/protected/pages/JuiControls/Widgets.page10
-rw-r--r--demos/site/.htaccess8
-rwxr-xr-xdemos/site/assets/.gitignore2
-rwxr-xr-xdemos/site/index.php17
-rwxr-xr-xdemos/site/protected/.htaccess1
-rw-r--r--demos/site/protected/Common/SimpleMenu.php86
-rw-r--r--demos/site/protected/Layouts/MainLayout.php5
-rw-r--r--demos/site/protected/Layouts/MainLayout.tpl56
-rw-r--r--demos/site/protected/Pages/About.page55
-rw-r--r--demos/site/protected/Pages/Demos.page31
-rw-r--r--demos/site/protected/Pages/Documentation.page42
-rw-r--r--demos/site/protected/Pages/Download.page116
-rwxr-xr-xdemos/site/protected/Pages/Home.page37
-rw-r--r--demos/site/protected/Pages/License.page28
-rw-r--r--demos/site/protected/Pages/Tos.page42
-rw-r--r--demos/site/protected/application.xml40
-rwxr-xr-xdemos/site/protected/runtime/.gitignore2
-rw-r--r--demos/site/themes/Prado/favicon.icobin0 -> 3638 bytes
-rw-r--r--demos/site/themes/Prado/imgs/bg.gifbin0 -> 307 bytes
-rw-r--r--demos/site/themes/Prado/imgs/bigmantis.jpgbin0 -> 13447 bytes
-rw-r--r--demos/site/themes/Prado/imgs/bigmantis.jpg.1bin0 -> 13447 bytes
-rw-r--r--demos/site/themes/Prado/imgs/bottomgradient.gifbin0 -> 269 bytes
-rw-r--r--demos/site/themes/Prado/imgs/bullet_one.gifbin0 -> 343 bytes
-rw-r--r--demos/site/themes/Prado/imgs/bullet_three.gifbin0 -> 369 bytes
-rw-r--r--demos/site/themes/Prado/imgs/bullet_two.gifbin0 -> 355 bytes
-rw-r--r--demos/site/themes/Prado/imgs/mainmenu_active.gifbin0 -> 154 bytes
-rw-r--r--demos/site/themes/Prado/imgs/mainmenu_hover.gifbin0 -> 155 bytes
-rw-r--r--demos/site/themes/Prado/imgs/pradodownload.gifbin0 -> 7159 bytes
-rwxr-xr-xdemos/site/themes/Prado/imgs/pradoheader.gifbin0 -> 15430 bytes
-rw-r--r--demos/site/themes/Prado/imgs/statementsbg.gifbin0 -> 327 bytes
-rwxr-xr-xdemos/site/themes/Prado/style.css765
-rw-r--r--framework/pradolite.php2
66 files changed, 2658 insertions, 1628 deletions
diff --git a/.gitignore b/.gitignore
index ff8c3b5b..9fc6c85f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,9 +28,11 @@ tests/unit/Data/db/test.db
vendor/*
bin/phpunit
bin/phing
-bin/apigen.php
+bin/apigen
bin/coveralls
-bin/dbunit.php
+bin/dbunit
+bin/jsonlint
+bin/validate-json
#OSX
.DS_Store
diff --git a/HISTORY b/HISTORY
index 17c6bb84..2eeb9bc6 100644
--- a/HISTORY
+++ b/HISTORY
@@ -45,7 +45,7 @@ Version 3.2.3 Nov 26, 2013
BUG: Issue #467 - TSafeHtml error on php 5.5 (ctrlaltca)
BUG: Issue #470 - Problem escaping characters in TActiveDropDownList (ctrlaltca)
BUG: Issue #468 - Update prototype to workaround IE10 bug (Raoul Bhatia)
-BUG: Issue #469 - JS Update to TDatePicker (Jürgen Aloy)
+BUG: Issue #469 - JS Update to TDatePicker (Jürgen Aloy)
BUG: Issue #465 - Textmate editor plugin template error (ctrlaltca)
BUG: Issue #472 - No https support from wsdl generator (Marcin Piotrowski)
ENH: Issue #473 - wsdl support for additional attributes of a custom type's property (Marcin Piotrowski)
@@ -179,7 +179,7 @@ BUG: Issue #368 - Clearing selection of a TActiveDropDownList in callback should
CHG: Issue #370 - Deprecated TSqliteCache since it's based on php's sqlite extension (ctrlaltca)
BUG: Issue #371 - Sorting on TActiveDataGrid autogenerated column not work (ctrlaltca)
ENH: Issue #372 - ActiveControls's Visible property should be reflected clientside on ajax requests (ctrlaltca)
-BUG: Issue #375 - Iconv error using htmlarea in TActiveDataList and chars like "áéíóúñ" (ctrlaltca)
+BUG: Issue #375 - Iconv error using htmlarea in TActiveDataList and chars like "áéíóúñ" (ctrlaltca)
BUG: Issue #377 - THtmlArea Template Pluggin Options Parse Error (ctrlaltca)
BUG: Issue #379 - JSON float encoding depends on current locale (ctrlaltca)
BUG: Issue #380 - TCustomValidator's ControlToValidate should be optional (ctrlaltca)
diff --git a/build.xml b/build.xml
index 8816b270..90ca164c 100644
--- a/build.xml
+++ b/build.xml
@@ -11,6 +11,7 @@
<taskdef name="prado-quickstart-index" classname="QuickstartIndexTask" classpath="buildscripts/phing/tasks"/>
<taskdef name="prado-api-index" classname="ManualIndexTask" classpath="buildscripts/phing/tasks"/>
<taskdef name="phpunitreporttask" classname="PhpUnitReportTask" classpath="buildscripts/phing/tasks"/>
+ <taskdef name="apigen4" classname="ApiGen4Task" classpath="buildscripts/phing/tasks"/>
<!-- generates ${prado.version} and ${prado.revision} -->
<prado-version-check/>
@@ -102,6 +103,7 @@
<include name="demos/soap/**/*"/>
<include name="demos/sqlmap/**/*"/>
<include name="demos/time-tracker/**/*"/>
+ <include name="demos/site/**/*"/>
</fileset>
<!--
@@ -185,8 +187,8 @@
<echo>Building API manuals...</echo>
<delete dir="${build.doc.dir}/manual"/>
<mkdir dir="${build.doc.dir}/manual"/>
- <apigen
- executable="bin/apigen.php"
+ <apigen4
+ executable="bin/apigen"
source="${build.src.dir}/framework"
destination="${build.doc.dir}/manual"
exclude="*pradolite.php,*prado-cli.php,*3rdParty/*,*Javascripts/source/*,*packages.php,*JSMin.php,*I18N/core/*,*WebControls/assets/*"
@@ -195,9 +197,8 @@
todo="true"
sourcecode="false"
php="false"
- templateconfig="buildscripts/apigen/pradosoft/config.neon"
/>
-
+<!-- templateconfig="buildscripts/apigen/pradosoft/config.neon" -->
<echo>Indexing API manuals...</echo>
<prado-api-index docdir="${build.doc.dir}/manual" todir="${build.doc.dir}/manual"/>
<copy file="buildscripts/index/search.php" todir="${build.doc.dir}/manual" />
@@ -224,11 +225,11 @@
<echo>Moving doc files to build...</echo>
<mkdir dir="${build.dist.dir}"/>
<move file="${build.doc.dir}/quickstart.pdf" todir="${build.src.dir}/docs"/>
- <copy todir="${build.src.dir}/docs/manual">
+ <move todir="${build.src.dir}/docs/manual">
<fileset dir="${build.doc.dir}/manual">
<include name="**/**"/>
</fileset>
- </copy>
+ </move>
<echo>Generating compressed distribution files...</echo>
<if>
@@ -244,14 +245,6 @@
<exec command="${php} build.php" dir="buildscripts/classtree" passthru="true"/>
<move file="buildscripts/classtree/classes.data" todir="${build.web.dir}/protected/Data"/>
- <echo>Moving HTML docs to Web folder...</echo>
- <mkdir dir="${build.web.dir}"/>
- <copy todir="${build.web.dir}/docs/manual">
- <fileset dir="${build.doc.dir}/manual">
- <include name="**/**"/>
- </fileset>
- </copy>
-
<echo>
Distribution Completed!!!
</echo>
diff --git a/buildscripts/phing/tasks/ApiGen4Task.php b/buildscripts/phing/tasks/ApiGen4Task.php
new file mode 100644
index 00000000..ef5d2b97
--- /dev/null
+++ b/buildscripts/phing/tasks/ApiGen4Task.php
@@ -0,0 +1,435 @@
+<?php
+/*
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * and is licensed under the LGPL. For more information please see
+ * <http://phing.info>.
+ */
+
+require_once 'phing/Task.php';
+
+/**
+ * ApiGen task (http://apigen.org).
+ *
+ * @package phing.tasks.ext.apigen
+ * @author Martin Srank <martin@smasty.net>
+ * @author Jaroslav Hanslík <kukulich@kukulich.cz>
+ * @since 2.4.10
+ */
+class ApiGen4Task extends Task
+{
+ /**
+ * Default ApiGen executable name.
+ *
+ * @var string
+ */
+ private $executable = 'apigen';
+
+ /**
+ * Default options for ApiGen.
+ *
+ * @var array
+ */
+ private $options = array();
+ private $flags = array();
+
+ /**
+ * Sets the ApiGen executable name.
+ *
+ * @param string $executable
+ */
+ public function setExecutable($executable)
+ {
+ $this->executable = (string) $executable;
+ }
+
+ /**
+ * Sets the config file name.
+ *
+ * @param string $config
+ */
+ public function setConfig($config)
+ {
+ $this->options['config'] = (string) $config;
+ }
+
+ /**
+ * Sets source files or directories.
+ *
+ * @param string $source
+ */
+ public function setSource($source)
+ {
+ $this->options['source'] = explode(',', $source);
+ }
+
+ /**
+ * Sets the destination directory.
+ *
+ * @param string $destination
+ */
+ public function setDestination($destination)
+ {
+ $this->options['destination'] = (string) $destination;
+ }
+
+ /**
+ * Sets list of allowed file extensions.
+ *
+ * @param string $extensions
+ */
+ public function setExtensions($extensions)
+ {
+ $this->options['extensions'] = explode(',', $extensions);
+ }
+
+ /**
+ * Sets masks (case sensitive) to exclude files or directories from processing.
+ *
+ * @param string $exclude
+ */
+ public function setExclude($exclude)
+ {
+ $this->options['exclude'] = explode(',', $exclude);
+ }
+
+ /**
+ * Sets masks to exclude elements from documentation generating.
+ *
+ * @param string $skipDocPath
+ */
+ public function setSkipDocPath($skipDocPath)
+ {
+ $this->options['skip-doc-path'] = explode(',', $skipDocPath);
+ }
+
+ /**
+ * Sets a name prefix to exclude elements from documentation generating.
+ *
+ * @param string $skipDocPrefix
+ */
+ public function setSkipDocPrefix($skipDocPrefix)
+ {
+ $this->options['skip-doc-prefix'] = explode(',', $skipDocPrefix);
+ }
+
+ /**
+ * Sets the character set of source files.
+ *
+ * @param string $charset
+ */
+ public function setCharset($charset)
+ {
+ $this->options['charset'] = explode(',', $charset);
+ }
+
+ /**
+ * Sets the main project name prefix.
+ *
+ * @param string $main
+ */
+ public function setMain($main)
+ {
+ $this->options['main'] = (string) $main;
+ }
+
+ /**
+ * Sets the title of generated documentation.
+ *
+ * @param string $title
+ */
+ public function setTitle($title)
+ {
+ $this->options['title'] = (string) $title;
+ }
+
+ /**
+ * Sets the documentation base URL.
+ *
+ * @param string $baseUrl
+ */
+ public function setBaseUrl($baseUrl)
+ {
+ $this->options['base-url'] = (string) $baseUrl;
+ }
+
+ /**
+ * Sets the Google Custom Search ID.
+ *
+ * @param string $googleCseId
+ */
+ public function setGoogleCseId($googleCseId)
+ {
+ $this->options['google-cse-id'] = (string) $googleCseId;
+ }
+
+ /**
+ * Sets the Google Custom Search label.
+ *
+ * @param string $googleCseLabel
+ */
+ public function setGoogleCseLabel($googleCseLabel)
+ {
+ $this->options['google-cse-label'] = (string) $googleCseLabel;
+ }
+
+ /**
+ * Sets the Google Analytics tracking code.
+ *
+ * @param string $googleAnalytics
+ */
+ public function setGoogleAnalytics($googleAnalytics)
+ {
+ $this->options['google-analytics'] = (string) $googleAnalytics;
+ }
+
+ /**
+ * Sets the template config file name.
+ *
+ * @param string $templateConfig
+ */
+ public function setTemplateConfig($templateConfig)
+ {
+ $this->options['template-config'] = (string) $templateConfig;
+ }
+
+ /**
+ * Sets a list of HTML tags allowed in the documentation.
+ *
+ * @param string $allowedHtml
+ */
+ public function setAllowedHtml($allowedHtml)
+ {
+ $this->options['allowed-html'] = (string) $allowedHtml;
+ }
+
+ /**
+ * Sets how elements should be grouped in the menu.
+ *
+ * @param string $groups
+ */
+ public function setGroups($groups)
+ {
+ $this->options['groups'] = (string) $groups;
+ }
+
+ /**
+ * Sets element types for search input autocomplete.
+ *
+ * @param string $autocomplete
+ */
+ public function setAutocomplete($autocomplete)
+ {
+ $this->options['autocomplete'] = (string) $autocomplete;
+ }
+
+ /**
+ * Sets the element access levels.
+ *
+ * Documentation only for methods and properties with the given access level will be generated.
+ *
+ * @param string $accessLevels
+ */
+ public function setAccessLevels($accessLevels)
+ {
+ $this->options['access-levels'] = (string) $accessLevels;
+ }
+
+ /**
+ * Sets if documentation for elements marked as internal and internal documentation parts should be generated.
+ *
+ * @param boolean $internal
+ */
+ public function setInternal($internal)
+ {
+ $this->options['internal'] = (bool) $internal;
+ }
+
+ /**
+ * Sets if documentation for PHP internal classes should be generated.
+ *
+ * @param boolean $php
+ */
+ public function setPhp($php)
+ {
+ $this->flags['php'] = (bool) $php;
+ }
+
+ /**
+ * Sets if tree view of classes, interfaces, traits and exceptions should be generated.
+ *
+ * @param boolean $tree
+ */
+ public function setTree($tree)
+ {
+ $this->options['tree'] = (bool) $tree;
+ }
+
+ /**
+ * Sets if documentation for deprecated elements should be generated.
+ *
+ * @param boolean $deprecated
+ */
+ public function setDeprecated($deprecated)
+ {
+ $this->flags['deprecated']= (bool) $deprecated;
+ }
+
+ /**
+ * Sets if documentation of tasks should be generated.
+ *
+ * @param boolean $todo
+ */
+ public function setTodo($todo)
+ {
+ $this->flags['todo'] = (bool) $todo;
+ }
+
+ /**
+ * Sets if highlighted source code files should be generated.
+ *
+ * @param boolean $sourceCode
+ */
+ public function setSourceCode($sourceCode)
+ {
+ $this->flags['no-source-code'] = (bool) ! $sourceCode;
+ }
+
+ /**
+ * Sets if a link to download documentation as a ZIP archive should be generated.
+ *
+ * @param boolean $download
+ */
+ public function setDownload($download)
+ {
+ $this->options['download'] = (bool) $download;
+ }
+
+ /**
+ * Sets a file name for checkstyle report of poorly documented elements.
+ *
+ * @param string $report
+ */
+ public function setReport($report)
+ {
+ $this->options['report'] = (string) $report;
+ }
+
+ /**
+ * Sets if the destination directory should be wiped out first.
+ *
+ * @param boolean $wipeout
+ */
+ public function setWipeout($wipeout)
+ {
+ $this->options['wipeout'] = (bool) $wipeout;
+ }
+
+ /**
+ * Enables/disables scaning and generating messages.
+ *
+ * @param boolean $quiet
+ */
+ public function setQuiet($quiet)
+ {
+ $this->options['quiet'] = (bool) $quiet;
+ }
+
+ /**
+ * Enables/disables the debug mode.
+ *
+ * @param boolean $debug
+ */
+ public function setDebug($debug)
+ {
+ $this->options['debug'] = (bool) $debug;
+ }
+
+ /**
+ * Runs ApiGen.
+ *
+ * @throws BuildException If something is wrong.
+ * @see Task::main()
+ */
+ public function main()
+ {
+ if ('apigen' !== $this->executable && !is_file($this->executable)) {
+ throw new BuildException(sprintf('Executable %s not found', $this->executable), $this->getLocation());
+ }
+
+ if (!empty($this->options['config'])) {
+ // Config check
+ if (!is_file($this->options['config'])) {
+ throw new BuildException(sprintf(
+ 'Config file %s doesn\'t exist',
+ $this->options['config']
+ ), $this->getLocation());
+ }
+ } else {
+ // Source check
+ if (empty($this->options['source'])) {
+ throw new BuildException('Source is not set', $this->getLocation());
+ }
+ // Destination check
+ if (empty($this->options['destination'])) {
+ throw new BuildException('Destination is not set', $this->getLocation());
+ }
+ }
+
+ // Source check
+ if (!empty($this->options['source'])) {
+ foreach ($this->options['source'] as $source) {
+ if (!file_exists($source)) {
+ throw new BuildException(sprintf('Source %s doesn\'t exist', $source), $this->getLocation());
+ }
+ }
+ }
+
+ // Execute ApiGen
+ exec(escapeshellcmd($this->executable) . ' generate ' . $this->constructArguments(), $output, $return);
+
+ $logType = 0 === $return ? Project::MSG_INFO : Project::MSG_ERR;
+ foreach ($output as $line) {
+ $this->log($line, $logType);
+ }
+ }
+
+ /**
+ * Generates command line arguments for the ApiGen executable.
+ *
+ * @return string
+ */
+ protected function constructArguments()
+ {
+ $args = array();
+ foreach ($this->options as $option => $value) {
+ if (is_bool($value)) {
+ $args[] = '--' . $option . '=' . ($value ? 'yes' : 'no');
+ } elseif (is_array($value)) {
+ foreach ($value as $v) {
+ $args[] = '--' . $option . '=' . escapeshellarg($v);
+ }
+ } else {
+ $args[] = '--' . $option . '=' . escapeshellarg($value);
+ }
+ }
+
+ foreach ($this->flags as $option => $value) {
+ if($value)
+ $args[] = '--' . $option;
+ }
+
+ return implode(' ', $args);
+ }
+}
diff --git a/buildscripts/texbuilder/quickstart/pages.php b/buildscripts/texbuilder/quickstart/pages.php
index 1fb94431..bbdec29b 100644
--- a/buildscripts/texbuilder/quickstart/pages.php
+++ b/buildscripts/texbuilder/quickstart/pages.php
@@ -9,13 +9,15 @@ $pages['Getting Started'] = array(
'GettingStarted/AboutPrado.page',
'GettingStarted/Installation.page',
'GettingStarted/NewFeatures.page',
- 'GettingStarted/Upgrading.page'
+ 'GettingStarted/Upgrading.page',
+ 'GettingStarted/Upgrading32.page'
);
$pages['Tutorials'] = array(
'GettingStarted/HelloWorld.page',
'Fundamentals/Hangman.page',
- 'GettingStarted/CommandLine.page'
+ 'GettingStarted/CommandLine.page',
+ 'GettingStarted/Wsat.page'
);
$pages['Tutorial: Currency Converter'] = array(
@@ -26,13 +28,10 @@ $pages['Tutorial: Building an AJAX Chat Application'] = array(
'Tutorial/AjaxChat.page'
);
-$pages['Tutorial: Addressbook'] = array(
- 'Tutorial/AddressBook.page'
- );
-
$pages['Fundamentals'] = array(
'Fundamentals/Architecture.page',
- 'Fundamentals/Components.page',
+ 'Fundamentals/Components1.page',
+ 'Fundamentals/Components2.page',
'Fundamentals/Controls.page',
'Fundamentals/Pages.page',
'Fundamentals/Modules.page',
@@ -66,6 +65,7 @@ $pages['Control Reference : Standard Controls'] = array(
'Controls/Head.page',
'Controls/HiddenField.page',
'Controls/HtmlArea.page',
+ 'Controls/HtmlArea4.page',
'Controls/HyperLink.page',
'Controls/Image.page',
'Controls/ImageButton.page',
@@ -76,6 +76,7 @@ $pages['Control Reference : Standard Controls'] = array(
'Controls/Label.page',
'Controls/LinkButton.page',
'Controls/Literal.page',
+ 'Controls/Markdown.page',
'Controls/MultiView.page',
'Controls/OutputCache.page',
'Controls/Pager.page',
@@ -125,24 +126,32 @@ $pages['Control Reference : Active Controls (AJAX)'] = array(
'ActiveControls/ActivePanel.page',
'ActiveControls/ActiveRadioButton.page',
'ActiveControls/ActiveRadioButtonList.page',
+ 'ActiveControls/ActiveRatingList.page',
'ActiveControls/ActiveRepeater.page',
'ActiveControls/ActiveTextBox.page',
'ActiveControls/AutoComplete.page',
'ActiveControls/Callback.page',
+ 'ActiveControls/EventTriggeredCallback.page',
+ 'ActiveControls/TimeTriggeredCallback.page',
+ 'ActiveControls/ValueTriggeredCallback.page',
+ 'ActiveControls/DragDrop.page',
+ 'ActiveControls/InPlaceTextBox.page',
'ActiveControls/CallbackClientScript.page',
'ActiveControls/CallbackClientSide.page',
'ActiveControls/CallbackEventParameter.page',
- 'ActiveControls/CallbackOptions.page',
- 'ActiveControls/DragDrop.page',
- 'ActiveControls/EventTriggeredCallback.page',
- 'ActiveControls/InPlaceTextBox.page',
- 'ActiveControls/TimeTriggeredCallback.page',
- 'ActiveControls/ValueTriggeredCallback.page');
+ 'ActiveControls/CallbackOptions.page'
+ );
$pages['Active Control Overview'] = array(
- 'ActiveControls/Home.page',
+ 'ActiveControls/Home.page',
'ActiveControls/Introduction.page');
+$pages['Control Reference : Jui Controls (jQuery UI)'] = array(
+ 'JuiControls/Home.page',
+ 'JuiControls/Interactions.page',
+ 'JuiControls/Widgets.page'
+ );
+
$pages['Write New Controls'] = array(
'Controls/NewControl.page');
@@ -154,7 +163,9 @@ $pages['Working with Databases'] = array(
'Database/DAO.page',
'Database/ActiveRecord.page',
'Database/Scaffold.page',
- 'Database/SqlMap.page');
+ 'Database/SqlMap.page',
+ 'Database/ViewsArUpdate.page'
+ );
$pages['Advanced Topics'] = array(
'Advanced/Collections.page',
@@ -171,8 +182,6 @@ $pages['Advanced Topics'] = array(
$pages['Client-side Scripting'] = array(
'Advanced/Scripts.page',
- 'Advanced/Scripts1.page',
- 'Advanced/Scripts2.page',
'Advanced/Scripts3.page');
return $pages;
diff --git a/composer.json b/composer.json
index 7e692f53..f3e2b1cc 100644
--- a/composer.json
+++ b/composer.json
@@ -12,6 +12,19 @@
"role" : "Developer"
},
{
+ "name": "Ciro Mattia Gonano",
+ "email": "ciromattia@gmail.com",
+ "role" : "Github/Packagist Maintainer"
+ },
+ {
+ "name": "David Otto",
+ "role" : "Developer"
+ },
+ {
+ "name": "Jens Klaer",
+ "role" : "Developer"
+ },
+ {
"name": "Christophe Boulain",
"email": "christophe.boulain@gmail.com",
"role" : "Developer"
@@ -20,11 +33,6 @@
"name": "Robin J. Rogge",
"email": "rojaro@gmail.com",
"role" : "Developer"
- },
- {
- "name": "Ciro Mattia Gonano",
- "email": "ciromattia@gmail.com",
- "role" : "Github/Packagist Maintainer"
}
],
"require": {
@@ -42,8 +50,8 @@
"phpunit/phpunit-selenium": ">=1.2",
"phpunit/php-invoker": "*",
"phpunit/phpunit-story": "*",
- "phing/phing" : "2.4.14",
- "apigen/apigen": "2.*",
+ "phing/phing" : "2.*",
+ "apigen/apigen": "*",
"satooshi/php-coveralls": "dev-master"
},
"provide" : {
diff --git a/composer.lock b/composer.lock
index e50f1900..d6f18a17 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1,10 +1,11 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
- "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "16bb0dc37f5f9efa8c30a4538c6d3fba",
+ "hash": "a1bde09fd86627591ec5df56e38dcbe7",
+ "content-hash": "d41db787e9edab8a7ca78b4c83e1e0f2",
"packages": [],
"packages-dev": [
{
@@ -56,48 +57,61 @@
},
{
"name": "apigen/apigen",
- "version": "2.8.0",
+ "version": "v4.1.1",
"source": {
"type": "git",
- "url": "https://github.com/apigen/ApiGen.git",
- "reference": "4987551632c3ad3fb7e89cf6dc3fe601e45578c3"
+ "url": "https://github.com/ApiGen/ApiGen.git",
+ "reference": "e9aff53d56d2b74104dee2b88396eb614e9717d5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/apigen/ApiGen/zipball/4987551632c3ad3fb7e89cf6dc3fe601e45578c3",
- "reference": "4987551632c3ad3fb7e89cf6dc3fe601e45578c3",
+ "url": "https://api.github.com/repos/ApiGen/ApiGen/zipball/e9aff53d56d2b74104dee2b88396eb614e9717d5",
+ "reference": "e9aff53d56d2b74104dee2b88396eb614e9717d5",
"shasum": ""
},
"require": {
- "andrewsville/php-token-reflection": ">=1.3.1",
- "dg/texy": ">=2.1.0",
- "kukulich/fshl": ">=2.1.0",
- "nette/nette": ">=2.0.5",
- "php": ">=5.3.0"
+ "andrewsville/php-token-reflection": "~1.4",
+ "apigen/theme-bootstrap": "~1.1.2",
+ "apigen/theme-default": "~1.0.1",
+ "herrera-io/phar-update": "~2.0",
+ "kdyby/events": "~2.0",
+ "kukulich/fshl": "~2.1",
+ "latte/latte": "~2.2",
+ "michelf/php-markdown": "~1.4",
+ "nette/application": "~2.2",
+ "nette/bootstrap": "~2.2",
+ "nette/di": "~2.2",
+ "nette/mail": "~2.2",
+ "nette/neon": "~2.2",
+ "nette/robot-loader": "~2.2",
+ "nette/safe-stream": "~2.2",
+ "php": ">=5.4",
+ "symfony/console": "~2.6",
+ "symfony/options-resolver": "~2.6.1",
+ "symfony/yaml": "~2.6",
+ "tracy/tracy": "~2.2"
},
- "suggest": {
- "ext-bz2": "*",
- "ext-phar": "*",
- "ext-zip": "*",
- "ext-zlib": "*"
+ "require-dev": {
+ "herrera-io/box": "~1.6",
+ "mockery/mockery": "~0.9"
},
"bin": [
- "apigen.php"
+ "bin/apigen"
],
"type": "library",
"extra": {
"branch-alias": {
- "dev-develop": "3.0.0-dev"
+ "dev-master": "4.1.0-dev"
}
},
"autoload": {
- "psr-0": {
- "ApiGen": "./"
+ "psr-4": {
+ "ApiGen\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
@@ -111,75 +125,109 @@
{
"name": "Jaroslav Hanslík",
"homepage": "https://github.com/kukulich"
+ },
+ {
+ "name": "Tomáš Votruba",
+ "email": "tomas.vot@gmail.com"
+ },
+ {
+ "name": "Olivier Laviale",
+ "homepage": "https://github.com/olvlvl"
}
],
- "description": "API documentation generator for PHP 5.3+",
+ "description": "PHP source code API generator",
"homepage": "http://apigen.org/",
"keywords": [
"api",
- "docblock",
"documentation",
"generator",
- "phpDocumentor",
"phpdoc"
],
- "time": "2012-09-29 17:34:02"
+ "time": "2015-04-09 13:42:45"
},
{
- "name": "dg/texy",
- "version": "v2.6",
+ "name": "apigen/theme-bootstrap",
+ "version": "v1.1.3",
"source": {
"type": "git",
- "url": "https://github.com/dg/texy.git",
- "reference": "8213d3646c3ab1a3eca52413a5be26acb29826fc"
+ "url": "https://github.com/ApiGen/ThemeBootstrap.git",
+ "reference": "55a35b4a3a9a5fcaa6a8fc43fb304983cab98c6c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dg/texy/zipball/8213d3646c3ab1a3eca52413a5be26acb29826fc",
- "reference": "8213d3646c3ab1a3eca52413a5be26acb29826fc",
+ "url": "https://api.github.com/repos/ApiGen/ThemeBootstrap/zipball/55a35b4a3a9a5fcaa6a8fc43fb304983cab98c6c",
+ "reference": "55a35b4a3a9a5fcaa6a8fc43fb304983cab98c6c",
"shasum": ""
},
"require": {
- "php": ">=5.2.0"
+ "latte/latte": "~2.2"
},
- "replace": {
- "dg/texy": "self.version"
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tomáš Votruba",
+ "email": "tomas.vot@gmail.com"
+ },
+ {
+ "name": "Olivier Laviale",
+ "homepage": "https://github.com/olvlvl"
+ }
+ ],
+ "description": "Twitter Bootstrap theme for ApiGen",
+ "homepage": "http://apigen.org/",
+ "time": "2015-10-11 14:52:50"
+ },
+ {
+ "name": "apigen/theme-default",
+ "version": "v1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ApiGen/ThemeDefault.git",
+ "reference": "51648cf83645d9ae6c655fe46bcd26a347d45336"
},
- "require-dev": {
- "nette/tester": "~1.2"
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ApiGen/ThemeDefault/zipball/51648cf83645d9ae6c655fe46bcd26a347d45336",
+ "reference": "51648cf83645d9ae6c655fe46bcd26a347d45336",
+ "shasum": ""
},
- "type": "library",
- "autoload": {
- "files": [
- "src/texy.php"
- ]
+ "require": {
+ "latte/latte": "~2.2"
},
+ "type": "library",
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause",
- "GPL-2.0",
- "GPL-3.0"
+ "MIT"
],
"authors": [
{
"name": "David Grudl",
"homepage": "http://davidgrudl.com"
+ },
+ {
+ "name": "Ondřej Nešpor",
+ "homepage": "https://github.com/andrewsville"
+ },
+ {
+ "name": "Jaroslav Hanslík",
+ "homepage": "https://github.com/kukulich"
+ },
+ {
+ "name": "Tomáš Votruba",
+ "email": "tomas.vot@gmail.com"
+ },
+ {
+ "name": "Olivier Laviale",
+ "homepage": "https://github.com/olvlvl"
}
],
- "description": "Texy converts plain text in easy to read Texy syntax into structurally valid (X)HTML. It supports adding of images, links, nested lists, tables and has full support for CSS. Texy supports hyphenation of long words (which reflects language rules), clickable emails and URL (emails are obfuscated against spambots), national typographic single and double quotation marks, ellipses, em dashes, dimension sign, nonbreakable spaces (e.g. in phone numbers), acronyms, arrows and many others. Texy code can optionally contain HTML tags.",
- "homepage": "http://texy.info",
- "keywords": [
- "html",
- "markdown",
- "markup language",
- "plain text",
- "text",
- "textile",
- "texy",
- "wiki",
- "xhtml"
- ],
- "time": "2014-06-20 18:38:38"
+ "description": "Default theme for ApiGen",
+ "homepage": "http://apigen.org/",
+ "time": "2015-10-11 14:55:30"
},
{
"name": "guzzle/guzzle",
@@ -277,6 +325,323 @@
"time": "2015-03-18 18:23:50"
},
{
+ "name": "herrera-io/json",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kherge-abandoned/php-json.git",
+ "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kherge-abandoned/php-json/zipball/60c696c9370a1e5136816ca557c17f82a6fa83f1",
+ "reference": "60c696c9370a1e5136816ca557c17f82a6fa83f1",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "justinrainbow/json-schema": ">=1.0,<2.0-dev",
+ "php": ">=5.3.3",
+ "seld/jsonlint": ">=1.0,<2.0-dev"
+ },
+ "require-dev": {
+ "herrera-io/phpunit-test-case": "1.*",
+ "mikey179/vfsstream": "1.1.0",
+ "phpunit/phpunit": "3.7.*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/lib/json_version.php"
+ ],
+ "psr-0": {
+ "Herrera\\Json": "src/lib"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kevin Herrera",
+ "email": "kevin@herrera.io",
+ "homepage": "http://kevin.herrera.io"
+ }
+ ],
+ "description": "A library for simplifying JSON linting and validation.",
+ "homepage": "http://herrera-io.github.com/php-json",
+ "keywords": [
+ "json",
+ "lint",
+ "schema",
+ "validate"
+ ],
+ "time": "2013-10-30 16:51:34"
+ },
+ {
+ "name": "herrera-io/phar-update",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kherge-abandoned/php-phar-update.git",
+ "reference": "15643c90d3d43620a4f45c910e6afb7a0ad4b488"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kherge-abandoned/php-phar-update/zipball/15643c90d3d43620a4f45c910e6afb7a0ad4b488",
+ "reference": "15643c90d3d43620a4f45c910e6afb7a0ad4b488",
+ "shasum": ""
+ },
+ "require": {
+ "herrera-io/json": "1.*",
+ "herrera-io/version": "1.*",
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "herrera-io/phpunit-test-case": "1.*",
+ "mikey179/vfsstream": "1.1.0",
+ "phpunit/phpunit": "3.7.*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/lib/constants.php"
+ ],
+ "psr-0": {
+ "Herrera\\Phar\\Update": "src/lib"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kevin Herrera",
+ "email": "kevin@herrera.io",
+ "homepage": "http://kevin.herrera.io"
+ }
+ ],
+ "description": "A library for self-updating Phars.",
+ "homepage": "http://herrera-io.github.com/php-phar-update",
+ "keywords": [
+ "phar",
+ "update"
+ ],
+ "time": "2013-11-09 17:13:13"
+ },
+ {
+ "name": "herrera-io/version",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kherge-abandoned/php-version.git",
+ "reference": "d39d9642b92a04d8b8a28b871b797a35a2545e85"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kherge-abandoned/php-version/zipball/d39d9642b92a04d8b8a28b871b797a35a2545e85",
+ "reference": "d39d9642b92a04d8b8a28b871b797a35a2545e85",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "herrera-io/phpunit-test-case": "1.*",
+ "phpunit/phpunit": "3.7.*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Herrera\\Version": "src/lib"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kevin Herrera",
+ "email": "kevin@herrera.io",
+ "homepage": "http://kevin.herrera.io"
+ }
+ ],
+ "description": "A library for creating, editing, and comparing semantic versioning numbers.",
+ "homepage": "http://github.com/herrera-io/php-version",
+ "keywords": [
+ "semantic",
+ "version"
+ ],
+ "time": "2014-05-27 05:29:25"
+ },
+ {
+ "name": "justinrainbow/json-schema",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/justinrainbow/json-schema.git",
+ "reference": "a4bee9f4b344b66e0a0d96c7afae1e92edf385fe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/a4bee9f4b344b66e0a0d96c7afae1e92edf385fe",
+ "reference": "a4bee9f4b344b66e0a0d96c7afae1e92edf385fe",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "require-dev": {
+ "json-schema/json-schema-test-suite": "1.1.0",
+ "phpdocumentor/phpdocumentor": "~2",
+ "phpunit/phpunit": "~3.7"
+ },
+ "bin": [
+ "bin/validate-json"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "JsonSchema\\": "src/JsonSchema/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Bruno Prieto Reis",
+ "email": "bruno.p.reis@gmail.com"
+ },
+ {
+ "name": "Justin Rainbow",
+ "email": "justin.rainbow@gmail.com"
+ },
+ {
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
+ },
+ {
+ "name": "Robert Schönthal",
+ "email": "seroscho@googlemail.com"
+ }
+ ],
+ "description": "A library to validate a json schema.",
+ "homepage": "https://github.com/justinrainbow/json-schema",
+ "keywords": [
+ "json",
+ "schema"
+ ],
+ "time": "2015-09-08 22:28:04"
+ },
+ {
+ "name": "kdyby/events",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Kdyby/Events.git",
+ "reference": "8049e0fc7abb48178b4a2a9af230eceebe1a83bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Kdyby/Events/zipball/8049e0fc7abb48178b4a2a9af230eceebe1a83bc",
+ "reference": "8049e0fc7abb48178b4a2a9af230eceebe1a83bc",
+ "shasum": ""
+ },
+ "require": {
+ "nette/di": "~2.3@dev",
+ "nette/utils": "~2.3@dev"
+ },
+ "require-dev": {
+ "jakub-onderka/php-parallel-lint": "~0.7",
+ "latte/latte": "~2.3@dev",
+ "nette/application": "~2.3@dev",
+ "nette/bootstrap": "~2.3@dev",
+ "nette/caching": "~2.3@dev",
+ "nette/component-model": "~2.2@dev",
+ "nette/database": "~2.3@dev",
+ "nette/deprecated": "~2.3@dev",
+ "nette/di": "~2.3@dev",
+ "nette/finder": "~2.3@dev",
+ "nette/forms": "~2.3@dev",
+ "nette/http": "~2.3@dev",
+ "nette/mail": "~2.3@dev",
+ "nette/neon": "~2.3@dev",
+ "nette/nette": "~2.3@dev",
+ "nette/php-generator": "~2.3@dev",
+ "nette/reflection": "~2.3@dev",
+ "nette/robot-loader": "~2.3@dev",
+ "nette/safe-stream": "~2.3@dev",
+ "nette/security": "~2.3@dev",
+ "nette/tester": "~1.4@rc",
+ "nette/tokenizer": "~2.2@dev",
+ "nette/utils": "~2.3@dev",
+ "symfony/event-dispatcher": "~2.5",
+ "tracy/tracy": "~2.3@dev"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.4-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Kdyby\\Events\\": "src/"
+ },
+ "classmap": [
+ "src/Kdyby/Events/exceptions.php"
+ ],
+ "files": [
+ "src/Doctrine/compatibility.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0",
+ "GPL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "Filip Procházka",
+ "email": "filip@prochazka.su",
+ "homepage": "http://filip-prochazka.com"
+ }
+ ],
+ "description": "Events for Nette Framework",
+ "homepage": "http://kdyby.org",
+ "keywords": [
+ "kdyby",
+ "nette"
+ ],
+ "time": "2015-04-04 16:29:31"
+ },
+ {
"name": "kukulich/fshl",
"version": "2.1.0",
"source": {
@@ -320,16 +685,16 @@
},
{
"name": "latte/latte",
- "version": "v2.3.3",
+ "version": "v2.3.7",
"source": {
"type": "git",
"url": "https://github.com/nette/latte.git",
- "reference": "025883a04b3a5ca48995246e8d82e6ff323d941e"
+ "reference": "b6e090e461c9cd88d60ae79a7713990b17b1531c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/latte/zipball/025883a04b3a5ca48995246e8d82e6ff323d941e",
- "reference": "025883a04b3a5ca48995246e8d82e6ff323d941e",
+ "url": "https://api.github.com/repos/nette/latte/zipball/b6e090e461c9cd88d60ae79a7713990b17b1531c",
+ "reference": "b6e090e461c9cd88d60ae79a7713990b17b1531c",
"shasum": ""
},
"require": {
@@ -358,33 +723,84 @@
"authors": [
{
"name": "David Grudl",
- "homepage": "http://davidgrudl.com"
+ "homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
- "homepage": "http://nette.org/contributors"
+ "homepage": "https://nette.org/contributors"
}
],
"description": "Latte: the amazing template engine for PHP",
- "homepage": "http://latte.nette.org",
+ "homepage": "https://latte.nette.org",
"keywords": [
"templating",
"twig"
],
- "time": "2015-07-03 13:37:59"
+ "time": "2015-11-07 22:54:05"
+ },
+ {
+ "name": "michelf/php-markdown",
+ "version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/michelf/php-markdown.git",
+ "reference": "e1aabe18173231ebcefc90e615565742fc1c7fd9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/michelf/php-markdown/zipball/e1aabe18173231ebcefc90e615565742fc1c7fd9",
+ "reference": "e1aabe18173231ebcefc90e615565742fc1c7fd9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-lib": "1.4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Michelf": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "John Gruber",
+ "homepage": "http://daringfireball.net/"
+ },
+ {
+ "name": "Michel Fortin",
+ "email": "michel.fortin@michelf.ca",
+ "homepage": "https://michelf.ca/",
+ "role": "Developer"
+ }
+ ],
+ "description": "PHP Markdown",
+ "homepage": "https://michelf.ca/projects/php-markdown/",
+ "keywords": [
+ "markdown"
+ ],
+ "time": "2015-03-01 12:03:08"
},
{
"name": "nette/application",
- "version": "v2.3.4",
+ "version": "v2.3.7",
"source": {
"type": "git",
"url": "https://github.com/nette/application.git",
- "reference": "785801e441ef83fa4d75cc47c292afedee9b3e4e"
+ "reference": "8e87ae81c2098abd7895bfd96d9fac1cd332abc3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/application/zipball/785801e441ef83fa4d75cc47c292afedee9b3e4e",
- "reference": "785801e441ef83fa4d75cc47c292afedee9b3e4e",
+ "url": "https://api.github.com/repos/nette/application/zipball/8e87ae81c2098abd7895bfd96d9fac1cd332abc3",
+ "reference": "8e87ae81c2098abd7895bfd96d9fac1cd332abc3",
"shasum": ""
},
"require": {
@@ -424,16 +840,16 @@
"authors": [
{
"name": "David Grudl",
- "homepage": "http://davidgrudl.com"
+ "homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
- "homepage": "http://nette.org/contributors"
+ "homepage": "https://nette.org/contributors"
}
],
"description": "Nette Application MVC Component",
- "homepage": "http://nette.org",
- "time": "2015-07-01 15:54:47"
+ "homepage": "https://nette.org",
+ "time": "2015-10-13 14:33:28"
},
{
"name": "nette/bootstrap",
@@ -503,35 +919,35 @@
},
{
"name": "nette/caching",
- "version": "v2.3.3",
+ "version": "v2.4.2",
"source": {
"type": "git",
"url": "https://github.com/nette/caching.git",
- "reference": "d4be13806d70c02d53b72cc63e93de6cf813f50f"
+ "reference": "ce04a24e03230a3ad163540aab46635c220163ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/caching/zipball/d4be13806d70c02d53b72cc63e93de6cf813f50f",
- "reference": "d4be13806d70c02d53b72cc63e93de6cf813f50f",
+ "url": "https://api.github.com/repos/nette/caching/zipball/ce04a24e03230a3ad163540aab46635c220163ed",
+ "reference": "ce04a24e03230a3ad163540aab46635c220163ed",
"shasum": ""
},
"require": {
"nette/finder": "~2.2",
"nette/utils": "~2.2",
- "php": ">=5.3.1"
+ "php": ">=5.4.4"
},
"conflict": {
"nette/nette": "<2.2"
},
"require-dev": {
- "latte/latte": "~2.3.0",
+ "latte/latte": "~2.4",
"nette/di": "~2.3",
"nette/tester": "~1.4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.3-dev"
+ "dev-master": "2.4-dev"
}
},
"autoload": {
@@ -557,24 +973,24 @@
],
"description": "Nette Caching Component",
"homepage": "http://nette.org",
- "time": "2015-07-11 21:09:42"
+ "time": "2015-09-07 11:57:44"
},
{
"name": "nette/component-model",
- "version": "v2.2.3",
+ "version": "v2.2.4",
"source": {
"type": "git",
"url": "https://github.com/nette/component-model.git",
- "reference": "fe13e630a307ef4585b3573eae0a161dc1c3d428"
+ "reference": "07bce436051fd92d084642ce7a47f00045e0d1e5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/component-model/zipball/fe13e630a307ef4585b3573eae0a161dc1c3d428",
- "reference": "fe13e630a307ef4585b3573eae0a161dc1c3d428",
+ "url": "https://api.github.com/repos/nette/component-model/zipball/07bce436051fd92d084642ce7a47f00045e0d1e5",
+ "reference": "07bce436051fd92d084642ce7a47f00045e0d1e5",
"shasum": ""
},
"require": {
- "nette/utils": "~2.2",
+ "nette/utils": "^2.3.5",
"php": ">=5.3.1"
},
"conflict": {
@@ -598,144 +1014,34 @@
"authors": [
{
"name": "David Grudl",
- "homepage": "http://davidgrudl.com"
+ "homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
- "homepage": "http://nette.org/contributors"
+ "homepage": "https://nette.org/contributors"
}
],
"description": "Nette Component Model",
- "homepage": "http://nette.org",
- "time": "2015-07-11 21:11:20"
- },
- {
- "name": "nette/database",
- "version": "v2.3.4",
- "source": {
- "type": "git",
- "url": "https://github.com/nette/database.git",
- "reference": "e5163fa150071af0f55518c414e177bc2b4be09d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nette/database/zipball/e5163fa150071af0f55518c414e177bc2b4be09d",
- "reference": "e5163fa150071af0f55518c414e177bc2b4be09d",
- "shasum": ""
- },
- "require": {
- "ext-pdo": "*",
- "nette/caching": "~2.2",
- "nette/utils": "~2.2",
- "php": ">=5.3.1"
- },
- "conflict": {
- "nette/nette": "<2.2"
- },
- "require-dev": {
- "mockery/mockery": "~0.9.1",
- "nette/di": "~2.3",
- "nette/tester": "~1.3"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause",
- "GPL-2.0",
- "GPL-3.0"
- ],
- "authors": [
- {
- "name": "David Grudl",
- "homepage": "http://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "http://nette.org/contributors"
- }
- ],
- "description": "Nette Database Component",
- "homepage": "http://nette.org",
- "time": "2015-07-20 01:20:17"
- },
- {
- "name": "nette/deprecated",
- "version": "v2.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/nette/deprecated.git",
- "reference": "169acddcc088bf74eb5b3c14d17f19b26d486b52"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nette/deprecated/zipball/169acddcc088bf74eb5b3c14d17f19b26d486b52",
- "reference": "169acddcc088bf74eb5b3c14d17f19b26d486b52",
- "shasum": ""
- },
- "require-dev": {
- "latte/latte": "~2.2",
- "nette/application": "~2.2",
- "nette/bootstrap": "~2.2, >=2.2.1",
- "nette/caching": "~2.2",
- "nette/forms": "~2.2",
- "nette/mail": "~2.2",
- "nette/robot-loader": "~2.2",
- "nette/safe-stream": "~2.2",
- "nette/tester": "~1.1",
- "nette/utils": "~2.2",
- "tracy/tracy": "~2.2"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ],
- "files": [
- "src/loader.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause",
- "GPL-2.0",
- "GPL-3.0"
- ],
- "authors": [
- {
- "name": "David Grudl",
- "homepage": "http://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "http://nette.org/contributors"
- }
- ],
- "description": "APIs and features removed from Nette Framework",
- "homepage": "http://nette.org",
- "time": "2015-07-11 20:57:29"
+ "homepage": "https://nette.org",
+ "time": "2015-10-06 17:54:05"
},
{
"name": "nette/di",
- "version": "v2.3.5",
+ "version": "v2.3.6",
"source": {
"type": "git",
"url": "https://github.com/nette/di.git",
- "reference": "c3e726f8bef49033ba78efe19e999e5fac63f433"
+ "reference": "efa1d13f016b58b4a9200802c9c5b14d10d72e85"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/di/zipball/c3e726f8bef49033ba78efe19e999e5fac63f433",
- "reference": "c3e726f8bef49033ba78efe19e999e5fac63f433",
+ "url": "https://api.github.com/repos/nette/di/zipball/efa1d13f016b58b4a9200802c9c5b14d10d72e85",
+ "reference": "efa1d13f016b58b4a9200802c9c5b14d10d72e85",
"shasum": ""
},
"require": {
- "nette/neon": "~2.3",
- "nette/php-generator": "~2.3",
+ "nette/neon": "^2.3.3",
+ "nette/php-generator": "^2.3.3",
"nette/utils": "~2.3",
"php": ">=5.3.1"
},
@@ -769,7 +1075,7 @@
],
"description": "Nette Dependency Injection Component",
"homepage": "http://nette.org",
- "time": "2015-07-13 22:28:49"
+ "time": "2015-09-14 18:18:24"
},
{
"name": "nette/finder",
@@ -822,61 +1128,6 @@
"time": "2015-07-11 21:13:50"
},
{
- "name": "nette/forms",
- "version": "v2.3.4",
- "source": {
- "type": "git",
- "url": "https://github.com/nette/forms.git",
- "reference": "e4e3777c7a783f1877eda4a07ff2f128bdd05bf9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nette/forms/zipball/e4e3777c7a783f1877eda4a07ff2f128bdd05bf9",
- "reference": "e4e3777c7a783f1877eda4a07ff2f128bdd05bf9",
- "shasum": ""
- },
- "require": {
- "nette/component-model": "~2.2",
- "nette/http": "~2.2",
- "nette/utils": "~2.2",
- "php": ">=5.3.1"
- },
- "conflict": {
- "nette/nette": "<2.2"
- },
- "require-dev": {
- "latte/latte": "~2.3.2",
- "nette/di": "~2.3",
- "nette/tester": "~1.3",
- "tracy/tracy": "~2.2"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause",
- "GPL-2.0",
- "GPL-3.0"
- ],
- "authors": [
- {
- "name": "David Grudl",
- "homepage": "http://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "http://nette.org/contributors"
- }
- ],
- "description": "Nette Forms: greatly facilitates web forms",
- "homepage": "http://nette.org",
- "time": "2015-07-20 01:25:35"
- },
- {
"name": "nette/http",
"version": "v2.3.3",
"source": {
@@ -932,16 +1183,16 @@
},
{
"name": "nette/mail",
- "version": "v2.3.2",
+ "version": "v2.3.3",
"source": {
"type": "git",
"url": "https://github.com/nette/mail.git",
- "reference": "2c6c64787edf8131ec5e1b514ecc4a80a6477f80"
+ "reference": "4ea303d96c6a80ffe357baf59d387f4fe2cfd412"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/mail/zipball/2c6c64787edf8131ec5e1b514ecc4a80a6477f80",
- "reference": "2c6c64787edf8131ec5e1b514ecc4a80a6477f80",
+ "url": "https://api.github.com/repos/nette/mail/zipball/4ea303d96c6a80ffe357baf59d387f4fe2cfd412",
+ "reference": "4ea303d96c6a80ffe357baf59d387f4fe2cfd412",
"shasum": ""
},
"require": {
@@ -974,29 +1225,29 @@
"authors": [
{
"name": "David Grudl",
- "homepage": "http://davidgrudl.com"
+ "homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
- "homepage": "http://nette.org/contributors"
+ "homepage": "https://nette.org/contributors"
}
],
"description": "Nette Mail: Sending E-mails",
- "homepage": "http://nette.org",
- "time": "2015-07-03 13:31:38"
+ "homepage": "https://nette.org",
+ "time": "2015-10-05 12:58:01"
},
{
"name": "nette/neon",
- "version": "v2.3.2",
+ "version": "v2.3.3",
"source": {
"type": "git",
"url": "https://github.com/nette/neon.git",
- "reference": "48b25e0962d70e9125797e67a144f3e057243d9d"
+ "reference": "12bbb0e85ba8521dd291f4df0fe20a1b79aae32c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/neon/zipball/48b25e0962d70e9125797e67a144f3e057243d9d",
- "reference": "48b25e0962d70e9125797e67a144f3e057243d9d",
+ "url": "https://api.github.com/repos/nette/neon/zipball/12bbb0e85ba8521dd291f4df0fe20a1b79aae32c",
+ "reference": "12bbb0e85ba8521dd291f4df0fe20a1b79aae32c",
"shasum": ""
},
"require": {
@@ -1030,92 +1281,20 @@
],
"description": "Nette NEON: parser & generator for Nette Object Notation",
"homepage": "http://ne-on.org",
- "time": "2015-07-13 22:29:08"
- },
- {
- "name": "nette/nette",
- "version": "v2.3.4",
- "source": {
- "type": "git",
- "url": "https://github.com/nette/nette.git",
- "reference": "7748ab2d7b1a6cd3dda10538758e981c71e5b72d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nette/nette/zipball/7748ab2d7b1a6cd3dda10538758e981c71e5b72d",
- "reference": "7748ab2d7b1a6cd3dda10538758e981c71e5b72d",
- "shasum": ""
- },
- "require": {
- "latte/latte": "2.3.3",
- "nette/application": "2.3.4",
- "nette/bootstrap": "2.3.3",
- "nette/caching": "2.3.3",
- "nette/component-model": "2.2.3",
- "nette/database": "2.3.4",
- "nette/deprecated": "2.3.1",
- "nette/di": "2.3.5",
- "nette/finder": "2.3.1",
- "nette/forms": "2.3.4",
- "nette/http": "2.3.3",
- "nette/mail": "2.3.2",
- "nette/neon": "2.3.2",
- "nette/php-generator": "2.3.1",
- "nette/reflection": "2.3.1",
- "nette/robot-loader": "2.3.1",
- "nette/safe-stream": "2.3.1",
- "nette/security": "2.3.1",
- "nette/tokenizer": "2.2.1",
- "nette/utils": "2.3.3",
- "tracy/tracy": "2.3.3"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "Nette/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause",
- "GPL-2.0",
- "GPL-3.0"
- ],
- "authors": [
- {
- "name": "David Grudl",
- "homepage": "http://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "http://nette.org/contributors"
- }
- ],
- "description": "Nette Framework - innovative framework for fast and easy development of secured web applications in PHP. Write less, have cleaner code and your work will bring you joy.",
- "homepage": "http://nette.org",
- "keywords": [
- "Forms",
- "database",
- "debugging",
- "framework",
- "mailing",
- "mvc",
- "templating"
- ],
- "time": "2015-07-20 01:58:21"
+ "time": "2015-08-22 15:23:30"
},
{
"name": "nette/php-generator",
- "version": "v2.3.1",
+ "version": "v2.3.4",
"source": {
"type": "git",
"url": "https://github.com/nette/php-generator.git",
- "reference": "c47ad59b972e8a5f4bb00299951bd8053a8fc074"
+ "reference": "846028e9d885d2d8ec60823d995e1291bbe3eb69"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/php-generator/zipball/c47ad59b972e8a5f4bb00299951bd8053a8fc074",
- "reference": "c47ad59b972e8a5f4bb00299951bd8053a8fc074",
+ "url": "https://api.github.com/repos/nette/php-generator/zipball/846028e9d885d2d8ec60823d995e1291bbe3eb69",
+ "reference": "846028e9d885d2d8ec60823d995e1291bbe3eb69",
"shasum": ""
},
"require": {
@@ -1143,16 +1322,16 @@
"authors": [
{
"name": "David Grudl",
- "homepage": "http://davidgrudl.com"
+ "homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
- "homepage": "http://nette.org/contributors"
+ "homepage": "https://nette.org/contributors"
}
],
"description": "Nette PHP Generator",
- "homepage": "http://nette.org",
- "time": "2015-07-11 21:19:33"
+ "homepage": "https://nette.org",
+ "time": "2015-10-09 14:34:13"
},
{
"name": "nette/reflection",
@@ -1366,66 +1545,17 @@
"time": "2015-07-11 21:22:53"
},
{
- "name": "nette/tokenizer",
- "version": "v2.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/nette/tokenizer.git",
- "reference": "cbb4920d166af495f83eb213f16512a421d44f63"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nette/tokenizer/zipball/cbb4920d166af495f83eb213f16512a421d44f63",
- "reference": "cbb4920d166af495f83eb213f16512a421d44f63",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.1"
- },
- "conflict": {
- "nette/nette": "<2.2"
- },
- "require-dev": {
- "nette/tester": "~1.0"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause",
- "GPL-2.0",
- "GPL-3.0"
- ],
- "authors": [
- {
- "name": "David Grudl",
- "homepage": "http://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "http://nette.org/contributors"
- }
- ],
- "description": "Nette Tokenizer",
- "homepage": "http://nette.org",
- "time": "2015-07-11 21:24:02"
- },
- {
"name": "nette/utils",
- "version": "v2.3.3",
+ "version": "v2.3.6",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "ff80fce39fdc381e7e0db6cc5ffc82162e59f6bb"
+ "reference": "c9dfaec788eb65d5ef10cefed0ae63bc76febaa8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/ff80fce39fdc381e7e0db6cc5ffc82162e59f6bb",
- "reference": "ff80fce39fdc381e7e0db6cc5ffc82162e59f6bb",
+ "url": "https://api.github.com/repos/nette/utils/zipball/c9dfaec788eb65d5ef10cefed0ae63bc76febaa8",
+ "reference": "c9dfaec788eb65d5ef10cefed0ae63bc76febaa8",
"shasum": ""
},
"require": {
@@ -1458,38 +1588,77 @@
"authors": [
{
"name": "David Grudl",
- "homepage": "http://davidgrudl.com"
+ "homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
- "homepage": "http://nette.org/contributors"
+ "homepage": "https://nette.org/contributors"
}
],
"description": "Nette Utility Classes",
- "homepage": "http://nette.org",
- "time": "2015-07-13 22:30:00"
+ "homepage": "https://nette.org",
+ "time": "2015-10-05 12:18:24"
},
{
"name": "phing/phing",
- "version": "2.4.14",
+ "version": "2.12.0",
"source": {
"type": "git",
"url": "https://github.com/phingofficial/phing.git",
- "reference": "41075d93ca254f1c90c79ec7ce81be2b2629e138"
+ "reference": "63a495a1f619b60404687a0a059039c5046677df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phingofficial/phing/zipball/41075d93ca254f1c90c79ec7ce81be2b2629e138",
- "reference": "41075d93ca254f1c90c79ec7ce81be2b2629e138",
+ "url": "https://api.github.com/repos/phingofficial/phing/zipball/63a495a1f619b60404687a0a059039c5046677df",
+ "reference": "63a495a1f619b60404687a0a059039c5046677df",
"shasum": ""
},
"require": {
"php": ">=5.2.0"
},
+ "require-dev": {
+ "ext-pdo_sqlite": "*",
+ "lastcraft/simpletest": "@dev",
+ "pdepend/pdepend": "2.x",
+ "pear-pear.php.net/console_getopt": "~1.3.0",
+ "pear-pear.php.net/http_request2": "2.2.x",
+ "pear-pear.php.net/net_growl": "2.7.x",
+ "pear-pear.php.net/pear_packagefilemanager": "1.7.x",
+ "pear-pear.php.net/pear_packagefilemanager2": "1.0.x",
+ "pear-pear.php.net/xml_serializer": "0.20.x",
+ "pear/pear_exception": "~1.0",
+ "pear/versioncontrol_git": "@dev",
+ "pear/versioncontrol_svn": "~0.5",
+ "phpdocumentor/phpdocumentor": "2.x",
+ "phploc/phploc": "~2.0.6",
+ "phpmd/phpmd": "~2.2",
+ "phpunit/phpunit": ">=3.7",
+ "sebastian/git": "~1.0",
+ "sebastian/phpcpd": "2.x",
+ "squizlabs/php_codesniffer": "~2.2"
+ },
+ "suggest": {
+ "pdepend/pdepend": "PHP version of JDepend",
+ "pear/archive_tar": "Tar file management class",
+ "pear/versioncontrol_git": "A library that provides OO interface to handle Git repository",
+ "pear/versioncontrol_svn": "A simple OO-style interface for Subversion, the free/open-source version control system",
+ "phpdocumentor/phpdocumentor": "Documentation Generator for PHP",
+ "phploc/phploc": "A tool for quickly measuring the size of a PHP project",
+ "phpmd/phpmd": "PHP version of PMD tool",
+ "phpunit/php-code-coverage": "Library that provides collection, processing, and rendering functionality for PHP code coverage information",
+ "phpunit/phpunit": "The PHP Unit Testing Framework",
+ "sebastian/phpcpd": "Copy/Paste Detector (CPD) for PHP code",
+ "tedivm/jshrink": "Javascript Minifier built in PHP"
+ },
"bin": [
"bin/phing"
],
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.11.x-dev"
+ }
+ },
"autoload": {
"classmap": [
"classes/phing/"
@@ -1500,48 +1669,48 @@
"classes"
],
"license": [
- "LGPL3"
+ "LGPL-3.0"
],
"authors": [
{
"name": "Michiel Rook",
- "email": "mrook@php.net",
- "role": "Lead"
+ "email": "mrook@php.net"
},
{
"name": "Phing Community",
- "homepage": "http://www.phing.info/trac/wiki/Development/Contributors"
+ "homepage": "https://www.phing.info/trac/wiki/Development/Contributors"
}
],
"description": "PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant.",
- "homepage": "http://www.phing.info/",
+ "homepage": "https://www.phing.info/",
"keywords": [
"build",
+ "phing",
"task",
"tool"
],
- "time": "2012-11-29 21:23:47"
+ "time": "2015-08-24 21:02:12"
},
{
"name": "phpunit/dbunit",
- "version": "1.3.0",
+ "version": "1.3.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/dbunit.git",
- "reference": "9d8a28bdb41fbd3c0dc16fa32fc00862d06abace"
+ "reference": "1507040c2541bdffd7fbd71fc792cecdea6a7c61"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/dbunit/zipball/9d8a28bdb41fbd3c0dc16fa32fc00862d06abace",
- "reference": "9d8a28bdb41fbd3c0dc16fa32fc00862d06abace",
+ "url": "https://api.github.com/repos/sebastianbergmann/dbunit/zipball/1507040c2541bdffd7fbd71fc792cecdea6a7c61",
+ "reference": "1507040c2541bdffd7fbd71fc792cecdea6a7c61",
"shasum": ""
},
"require": {
"ext-pdo": "*",
"ext-simplexml": "*",
"php": ">=5.3.3",
- "phpunit/phpunit": ">=3.7.0@stable",
- "symfony/yaml": ">=2.1.0"
+ "phpunit/phpunit": "~3.7|~4.0",
+ "symfony/yaml": "~2.1"
},
"bin": [
"composer/bin/dbunit"
@@ -1579,7 +1748,7 @@
"testing",
"xunit"
],
- "time": "2013-11-04 08:33:33"
+ "time": "2015-03-29 14:23:04"
},
{
"name": "phpunit/php-code-coverage",
@@ -1691,40 +1860,40 @@
},
{
"name": "phpunit/php-invoker",
- "version": "1.1.3",
+ "version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "8696484458cb43eed025ab46260846de5b74655c"
+ "reference": "86074bf0fc2caf02ec8819a93f65a37cd0b44c8e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/8696484458cb43eed025ab46260846de5b74655c",
- "reference": "8696484458cb43eed025ab46260846de5b74655c",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/86074bf0fc2caf02ec8819a93f65a37cd0b44c8e",
+ "reference": "86074bf0fc2caf02ec8819a93f65a37cd0b44c8e",
"shasum": ""
},
"require": {
"ext-pcntl": "*",
- "php": ">=5.2.7",
- "phpunit/php-timer": ">=1.0.4,<1.1.0"
+ "php": ">=5.3.3",
+ "phpunit/php-timer": ">=1.0.6"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4"
},
"type": "library",
"autoload": {
"classmap": [
- "PHP/"
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
- "include-path": [
- ""
- ],
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Sebastian Bergmann",
- "email": "sb@sebastian-bergmann.de",
+ "email": "sebastian@phpunit.de",
"role": "lead"
}
],
@@ -1733,7 +1902,7 @@
"keywords": [
"process"
],
- "time": "2013-07-16 05:20:21"
+ "time": "2015-06-21 13:32:55"
},
{
"name": "phpunit/php-text-template",
@@ -1869,39 +2038,38 @@
},
{
"name": "phpunit/phpunit",
- "version": "3.7.28",
+ "version": "3.7.38",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d"
+ "reference": "38709dc22d519a3d1be46849868aa2ddf822bcf6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d",
- "reference": "3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/38709dc22d519a3d1be46849868aa2ddf822bcf6",
+ "reference": "38709dc22d519a3d1be46849868aa2ddf822bcf6",
"shasum": ""
},
"require": {
+ "ext-ctype": "*",
"ext-dom": "*",
+ "ext-json": "*",
"ext-pcre": "*",
"ext-reflection": "*",
"ext-spl": "*",
"php": ">=5.3.3",
- "phpunit/php-code-coverage": "~1.2.1",
- "phpunit/php-file-iterator": ">=1.3.1",
- "phpunit/php-text-template": ">=1.1.1",
- "phpunit/php-timer": ">=1.0.4",
- "phpunit/phpunit-mock-objects": "~1.2.0",
+ "phpunit/php-code-coverage": "~1.2",
+ "phpunit/php-file-iterator": "~1.3",
+ "phpunit/php-text-template": "~1.1",
+ "phpunit/php-timer": "~1.0",
+ "phpunit/phpunit-mock-objects": "~1.2",
"symfony/yaml": "~2.0"
},
"require-dev": {
- "pear-pear/pear": "1.9.4"
+ "pear-pear.php.net/pear": "1.9.4"
},
"suggest": {
- "ext-json": "*",
- "ext-simplexml": "*",
- "ext-tokenizer": "*",
- "phpunit/php-invoker": ">=1.1.0,<1.2.0"
+ "phpunit/php-invoker": "~1.1"
},
"bin": [
"composer/bin/phpunit"
@@ -1939,7 +2107,7 @@
"testing",
"xunit"
],
- "time": "2013-10-17 07:27:40"
+ "time": "2014-10-17 09:04:17"
},
{
"name": "phpunit/phpunit-mock-objects",
@@ -2442,26 +2610,69 @@
"time": "2015-06-21 08:04:50"
},
{
+ "name": "seld/jsonlint",
+ "version": "1.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/jsonlint.git",
+ "reference": "863ae85c6d3ef60ca49cb12bd051c4a0648c40c4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/863ae85c6d3ef60ca49cb12bd051c4a0648c40c4",
+ "reference": "863ae85c6d3ef60ca49cb12bd051c4a0648c40c4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "bin": [
+ "bin/jsonlint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Seld\\JsonLint\\": "src/Seld/JsonLint/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "JSON Linter",
+ "keywords": [
+ "json",
+ "linter",
+ "parser",
+ "validator"
+ ],
+ "time": "2015-01-04 21:18:15"
+ },
+ {
"name": "symfony/config",
- "version": "v2.7.3",
+ "version": "v2.7.6",
"source": {
"type": "git",
- "url": "https://github.com/symfony/Config.git",
- "reference": "6c905bbed1e728226de656e4c07d620dfe9e80d9"
+ "url": "https://github.com/symfony/config.git",
+ "reference": "831f88908b51b9ce945f5e6f402931d1ac544423"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Config/zipball/6c905bbed1e728226de656e4c07d620dfe9e80d9",
- "reference": "6c905bbed1e728226de656e4c07d620dfe9e80d9",
+ "url": "https://api.github.com/repos/symfony/config/zipball/831f88908b51b9ce945f5e6f402931d1ac544423",
+ "reference": "831f88908b51b9ce945f5e6f402931d1ac544423",
"shasum": ""
},
"require": {
"php": ">=5.3.9",
"symfony/filesystem": "~2.3"
},
- "require-dev": {
- "symfony/phpunit-bridge": "~2.7"
- },
"type": "library",
"extra": {
"branch-alias": {
@@ -2489,20 +2700,20 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
- "time": "2015-07-09 16:07:40"
+ "time": "2015-10-11 09:39:48"
},
{
"name": "symfony/console",
- "version": "v2.7.3",
+ "version": "v2.7.6",
"source": {
"type": "git",
- "url": "https://github.com/symfony/Console.git",
- "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e"
+ "url": "https://github.com/symfony/console.git",
+ "reference": "5efd632294c8320ea52492db22292ff853a43766"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Console/zipball/d6cf02fe73634c96677e428f840704bfbcaec29e",
- "reference": "d6cf02fe73634c96677e428f840704bfbcaec29e",
+ "url": "https://api.github.com/repos/symfony/console/zipball/5efd632294c8320ea52492db22292ff853a43766",
+ "reference": "5efd632294c8320ea52492db22292ff853a43766",
"shasum": ""
},
"require": {
@@ -2511,7 +2722,6 @@
"require-dev": {
"psr/log": "~1.0",
"symfony/event-dispatcher": "~2.1",
- "symfony/phpunit-bridge": "~2.7",
"symfony/process": "~2.1"
},
"suggest": {
@@ -2546,20 +2756,20 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2015-07-28 15:18:12"
+ "time": "2015-10-20 14:38:46"
},
{
"name": "symfony/event-dispatcher",
- "version": "v2.7.3",
+ "version": "v2.7.6",
"source": {
"type": "git",
- "url": "https://github.com/symfony/EventDispatcher.git",
- "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3"
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "87a5db5ea887763fa3a31a5471b512ff1596d9b8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
- "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/87a5db5ea887763fa3a31a5471b512ff1596d9b8",
+ "reference": "87a5db5ea887763fa3a31a5471b512ff1596d9b8",
"shasum": ""
},
"require": {
@@ -2570,7 +2780,6 @@
"symfony/config": "~2.0,>=2.0.5",
"symfony/dependency-injection": "~2.6",
"symfony/expression-language": "~2.6",
- "symfony/phpunit-bridge": "~2.7",
"symfony/stopwatch": "~2.3"
},
"suggest": {
@@ -2604,28 +2813,25 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
- "time": "2015-06-18 19:21:56"
+ "time": "2015-10-11 09:39:48"
},
{
"name": "symfony/filesystem",
- "version": "v2.7.3",
+ "version": "v2.7.6",
"source": {
"type": "git",
- "url": "https://github.com/symfony/Filesystem.git",
- "reference": "2d7b2ddaf3f548f4292df49a99d19c853d43f0b8"
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "56fd6df73be859323ff97418d97edc1d756df6df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Filesystem/zipball/2d7b2ddaf3f548f4292df49a99d19c853d43f0b8",
- "reference": "2d7b2ddaf3f548f4292df49a99d19c853d43f0b8",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/56fd6df73be859323ff97418d97edc1d756df6df",
+ "reference": "56fd6df73be859323ff97418d97edc1d756df6df",
"shasum": ""
},
"require": {
"php": ">=5.3.9"
},
- "require-dev": {
- "symfony/phpunit-bridge": "~2.7"
- },
"type": "library",
"extra": {
"branch-alias": {
@@ -2653,24 +2859,25 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
- "time": "2015-07-09 16:07:40"
+ "time": "2015-10-18 20:23:18"
},
{
- "name": "symfony/stopwatch",
- "version": "v2.7.3",
+ "name": "symfony/options-resolver",
+ "version": "v2.6.11",
+ "target-dir": "Symfony/Component/OptionsResolver",
"source": {
"type": "git",
- "url": "https://github.com/symfony/Stopwatch.git",
- "reference": "b07a866719bbac5294c67773340f97b871733310"
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "31e56594cee489e9a235b852228b0598b52101c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/b07a866719bbac5294c67773340f97b871733310",
- "reference": "b07a866719bbac5294c67773340f97b871733310",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/31e56594cee489e9a235b852228b0598b52101c1",
+ "reference": "31e56594cee489e9a235b852228b0598b52101c1",
"shasum": ""
},
"require": {
- "php": ">=5.3.9"
+ "php": ">=5.3.3"
},
"require-dev": {
"symfony/phpunit-bridge": "~2.7"
@@ -2678,6 +2885,57 @@
"type": "library",
"extra": {
"branch-alias": {
+ "dev-master": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Symfony\\Component\\OptionsResolver\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony OptionsResolver Component",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "config",
+ "configuration",
+ "options"
+ ],
+ "time": "2015-05-13 11:33:56"
+ },
+ {
+ "name": "symfony/stopwatch",
+ "version": "v2.7.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/stopwatch.git",
+ "reference": "f8ab957c17e4b85a73c4df03bdf94ee597f2bd55"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f8ab957c17e4b85a73c4df03bdf94ee597f2bd55",
+ "reference": "f8ab957c17e4b85a73c4df03bdf94ee597f2bd55",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
"dev-master": "2.7-dev"
}
},
@@ -2702,28 +2960,25 @@
],
"description": "Symfony Stopwatch Component",
"homepage": "https://symfony.com",
- "time": "2015-07-01 18:23:16"
+ "time": "2015-10-12 12:42:24"
},
{
"name": "symfony/yaml",
- "version": "v2.7.3",
+ "version": "v2.7.6",
"source": {
"type": "git",
- "url": "https://github.com/symfony/Yaml.git",
- "reference": "71340e996171474a53f3d29111d046be4ad8a0ff"
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "eca9019c88fbe250164affd107bc8057771f3f4d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/Yaml/zipball/71340e996171474a53f3d29111d046be4ad8a0ff",
- "reference": "71340e996171474a53f3d29111d046be4ad8a0ff",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/eca9019c88fbe250164affd107bc8057771f3f4d",
+ "reference": "eca9019c88fbe250164affd107bc8057771f3f4d",
"shasum": ""
},
"require": {
"php": ">=5.3.9"
},
- "require-dev": {
- "symfony/phpunit-bridge": "~2.7"
- },
"type": "library",
"extra": {
"branch-alias": {
@@ -2751,20 +3006,20 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
- "time": "2015-07-28 14:07:07"
+ "time": "2015-10-11 09:39:48"
},
{
"name": "tracy/tracy",
- "version": "v2.3.3",
+ "version": "v2.3.6",
"source": {
"type": "git",
"url": "https://github.com/nette/tracy.git",
- "reference": "17d15b8dc83cab3bc5022a45d32c681a76cc19e1"
+ "reference": "79831c75b6f48fcb897d25ccae5deec358cb2142"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/tracy/zipball/17d15b8dc83cab3bc5022a45d32c681a76cc19e1",
- "reference": "17d15b8dc83cab3bc5022a45d32c681a76cc19e1",
+ "url": "https://api.github.com/repos/nette/tracy/zipball/79831c75b6f48fcb897d25ccae5deec358cb2142",
+ "reference": "79831c75b6f48fcb897d25ccae5deec358cb2142",
"shasum": ""
},
"require": {
@@ -2792,21 +3047,21 @@
"authors": [
{
"name": "David Grudl",
- "homepage": "http://davidgrudl.com"
+ "homepage": "https://davidgrudl.com"
},
{
"name": "Nette Community",
- "homepage": "http://nette.org/contributors"
+ "homepage": "https://nette.org/contributors"
}
],
"description": "Tracy: useful PHP debugger",
- "homepage": "http://tracy.nette.org",
+ "homepage": "https://tracy.nette.org",
"keywords": [
"debug",
"debugger",
"nette"
],
- "time": "2015-07-03 12:52:35"
+ "time": "2015-10-28 23:49:21"
}
],
"aliases": [],
diff --git a/demos/quickstart/protected/controls/TopicList.tpl b/demos/quickstart/protected/controls/TopicList.tpl
index ed57a4b0..c23bd2be 100644
--- a/demos/quickstart/protected/controls/TopicList.tpl
+++ b/demos/quickstart/protected/controls/TopicList.tpl
@@ -106,8 +106,6 @@
<div>Client-side Scripting</div>
<ul>
<li><a href="?page=Advanced.Scripts">Introduction to Javascript</a></li>
- <li><a href="?page=Advanced.Scripts1">Prototype Library Part I</a></li>
- <li><a href="?page=Advanced.Scripts2">Prototype Library Part II</a></li>
<li><a href="?page=Advanced.Scripts3">Javascript Cookbook</a></li>
</ul>
</div>
diff --git a/demos/quickstart/protected/controls/de/TopicList.tpl b/demos/quickstart/protected/controls/de/TopicList.tpl
index 470927da..3c358b43 100755
--- a/demos/quickstart/protected/controls/de/TopicList.tpl
+++ b/demos/quickstart/protected/controls/de/TopicList.tpl
@@ -106,8 +106,6 @@
<div>Client-side Scripting</div>
<ul>
<li><a href="?page=Advanced.Scripts">Einführung in Javascript</a></li>
- <li><a href="?page=Advanced.Scripts1">Prototype Library Teil I</a></li>
- <li><a href="?page=Advanced.Scripts2">Prototype Library Teil II</a></li>
<li><a href="?page=Advanced.Scripts3">Javascript Kochbuch</a></li>
</ul>
</div>
diff --git a/demos/quickstart/protected/controls/es/TopicList.tpl b/demos/quickstart/protected/controls/es/TopicList.tpl
index 62451700..ba5f83c4 100644
--- a/demos/quickstart/protected/controls/es/TopicList.tpl
+++ b/demos/quickstart/protected/controls/es/TopicList.tpl
@@ -103,8 +103,6 @@
<div>Scripts del lado del cliente (Client-side Scripting)</div>
<ul>
<li><a href="?page=Advanced.Scripts">Introducción a Javascript</a></li>
- <li><a href="?page=Advanced.Scripts1">Librería Prototipo Parte I</a></li>
- <li><a href="?page=Advanced.Scripts2">Librería Prototipo Parte II</a></li>
<li><a href="?page=Advanced.Scripts3">Recetario de Javascript (Cookbook)</a></li>
</ul>
</div>
diff --git a/demos/quickstart/protected/controls/fr/TopicList.tpl b/demos/quickstart/protected/controls/fr/TopicList.tpl
index c37609ab..1959fcbc 100644
--- a/demos/quickstart/protected/controls/fr/TopicList.tpl
+++ b/demos/quickstart/protected/controls/fr/TopicList.tpl
@@ -101,8 +101,6 @@
<div>Script côté client</div>
<ul>
<li><a href="?page=Advanced.Scripts">Introduction au Javascript</a></li>
- <li><a href="?page=Advanced.Scripts1">Librairie Prototype Partie I</a></li>
- <li><a href="?page=Advanced.Scripts2">Librairie Prototype Partie II</a></li>
<li><a href="?page=Advanced.Scripts3">Javascript Cookbook</a></li>
</ul>
</div>
diff --git a/demos/quickstart/protected/controls/id/TopicList.tpl b/demos/quickstart/protected/controls/id/TopicList.tpl
index a35db55d..1f1f9403 100644
--- a/demos/quickstart/protected/controls/id/TopicList.tpl
+++ b/demos/quickstart/protected/controls/id/TopicList.tpl
@@ -102,8 +102,6 @@
<div>Penaskahan sisi-Klien</div>
<ul>
<li><a href="?page=Advanced.Scripts">Pengenalan Javascript</a></li>
- <li><a href="?page=Advanced.Scripts1">Librari Prototipe Bagian I</a></li>
- <li><a href="?page=Advanced.Scripts2">Librari Prototipe Bagian II</a></li>
<li><a href="?page=Advanced.Scripts3">Buku Lengkap Javascript</a></li>
</ul>
</div>
diff --git a/demos/quickstart/protected/controls/ja/TopicList.tpl b/demos/quickstart/protected/controls/ja/TopicList.tpl
index f24994e0..dc025b1a 100644
--- a/demos/quickstart/protected/controls/ja/TopicList.tpl
+++ b/demos/quickstart/protected/controls/ja/TopicList.tpl
@@ -102,8 +102,6 @@
<div>クライアントサイドスクリプト</div>
<ul>
<li><a href="?page=Advanced.Scripts">Javascript 使用方法</a></li>
- <li><a href="?page=Advanced.Scripts1">Prototype ライブラリ パート I</a></li>
- <li><a href="?page=Advanced.Scripts2">Prototype ライブラリ パート II</a></li>
<li><a href="?page=Advanced.Scripts3">Javascript クックブック</a></li>
</ul>
</div>
diff --git a/demos/quickstart/protected/controls/pl/TopicList.tpl b/demos/quickstart/protected/controls/pl/TopicList.tpl
index a494d94e..c92962f9 100644
--- a/demos/quickstart/protected/controls/pl/TopicList.tpl
+++ b/demos/quickstart/protected/controls/pl/TopicList.tpl
@@ -102,8 +102,6 @@
<div>Skrypty po stronie klienta</div>
<ul>
<li><a href="?page=Advanced.Scripts">Wprowadznie do Javascript</a></li>
- <li><a href="?page=Advanced.Scripts1">Biblioteka Prototype część I</a></li>
- <li><a href="?page=Advanced.Scripts2">Biblioteka Prototype część II</a></li>
<li><a href="?page=Advanced.Scripts3">Książka z przepisami Javascript</a></li>
</ul>
</div>
diff --git a/demos/quickstart/protected/controls/zh/TopicList.tpl b/demos/quickstart/protected/controls/zh/TopicList.tpl
index 73e1d5a8..79293c18 100644
--- a/demos/quickstart/protected/controls/zh/TopicList.tpl
+++ b/demos/quickstart/protected/controls/zh/TopicList.tpl
@@ -101,8 +101,6 @@
<div>客户端编程</div>
<ul>
<li><a href="?page=Advanced.Scripts">JavaScript介ç»</a></li>
- <li><a href="?page=Advanced.Scripts1">Prototype Library Part I</a></li>
- <li><a href="?page=Advanced.Scripts2">Prototype Library Part II</a></li>
<li><a href="?page=Advanced.Scripts3">Javascript Cookbook</a></li>
</ul>
</div>
diff --git a/demos/quickstart/protected/pages/ActiveControls/ActiveRatingList.page b/demos/quickstart/protected/pages/ActiveControls/ActiveRatingList.page
index 7b6fb83d..fa0e25c4 100644
--- a/demos/quickstart/protected/pages/ActiveControls/ActiveRatingList.page
+++ b/demos/quickstart/protected/pages/ActiveControls/ActiveRatingList.page
@@ -1,6 +1,6 @@
<com:TContent ID="body" >
-<h1>TActiveRatingList</h1>
+<h1 id="192015">TActiveRatingList</h1>
<com:DocLink ClassPath="System.Web.UI.ActiveControls.TActiveRatingList" />
<p class="block-content">
diff --git a/demos/quickstart/protected/pages/ActiveControls/Introduction.page b/demos/quickstart/protected/pages/ActiveControls/Introduction.page
index edc0b5bc..275da737 100755
--- a/demos/quickstart/protected/pages/ActiveControls/Introduction.page
+++ b/demos/quickstart/protected/pages/ActiveControls/Introduction.page
@@ -9,7 +9,7 @@ A classic webpage can only transfer data back to the server using an http postba
A common solution to this problem is the use of AJAX (Asynchronous JavaScript and XML) callbacks. After the first full page load, the web application can make subsequents requests using javascript. The callback requests are asynchronous, so the user can continue to interact with the page while the response is loading. The response contains a list of changes that will be applied to the page "on the fly", like replacing existing elements with new content or add some css style to an existing element.
</p>
-<h2>Interacting with a page on callback</h2>
+<h2 id="222017">Interacting with a page on callback</h2>
<p class="block-content">
PRADO has builtin support for AJAX callbacks in the form of <i>Active Controls</i>. These controls can trigger a callback request and have their properties (value, css style, attributes, ..) updated during a callback.
@@ -28,7 +28,7 @@ public function onClick($sender, $param)
}
</com:TTextHighlighter>
-<h1>Active Controls (AJAX enabled Controls)</h1>
+<h1 id="222016">Active Controls (AJAX enabled Controls)</h1>
<p class="block-content">
Active controls extends standard PRADO controls adding the ability to automatically update themselves on callbacks without the need of ad-hoc javascript calls. Active controls are reliant on a collection of javascript classes that gets added to the page automatically when needed.
</p>
diff --git a/demos/quickstart/protected/pages/Advanced/Scripts1.page b/demos/quickstart/protected/pages/Advanced/Scripts1.page
deleted file mode 100755
index 96ab7760..00000000
--- a/demos/quickstart/protected/pages/Advanced/Scripts1.page
+++ /dev/null
@@ -1,96 +0,0 @@
-<com:TContent ID="body" >
-
-<h1 id="6601">Developer Notes for prototype.js</h1>
-This guide is based on the <a href="http://www.sergiopereira.com/articles/prototype.js.html">
-Developer Notes for prototype.js</a> by Sergio Pereira.
-
-<h2 id="6603">What is that?</h2>
-<p id="830726" class="block-content">
-In case you haven't already used it, <a href="http://prototype.conio.net">prototype.js</a> is a
- JavaScript library written by <a href="http://www.conio.net">Sam Stephenson</a>.
- This amazingly well thought and well written piece of <b>standards-compliant</b> code takes a lot of
- the burden associated with creating rich, highly interactive web pages that characterize the Web 2.0 off your back.
-</p>
-
-<p id="830727" class="block-content">
- If you tried to use this library recently, you probably noticed that documentation is not one
- of its strongest points. As many other developers before me, I got my head around prototype.js by
- reading the source code and experimenting with it. I thought it would be nice to take notes while
- I learned and share with everybody else.
-</p>
-<p id="830728" class="block-content">
- As you read the examples and the reference, developers familiar with the Ruby
- programming language will notice an intentional similarity between Ruby's
- built-in classes and many of the extensions implemented by this library.
-</p>
-
-
-<h2 id="6604">Using the <tt>$()</tt> function</h2>
-<p id="830729" class="block-content">
- The <tt>$()</tt> function is a handy shortcut to the all-too-frequent <tt>document.getElementById()</tt> function
- of the DOM. Like the DOM function, this one returns the element that has the id passed as an argument.
-</p>
-
-<p id="830730" class="block-content">
- Unlike the DOM function, though, this one goes further. You can pass more than one id and
- <tt>$()</tt> will return an <tt>Array</tt> object with
- all the requested elements. The example below should illustrate this.
-</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_830252">
-&lt;com:TClientScript UsingClientScripts="prado" /&gt;
-<div id="myDiv">
- <p id="830731" class="block-content">This is a paragraph</p>
-</div>
-
-<div id="myOtherDiv">
- <p id="830732" class="block-content">This is another paragraph</p>
-</div>
-
-<input type="button" value=Test1 onclick="test1();" />
-<input type="button" value=Test2 onclick="test2();" />
-
-<script type="text/javascript">
-/*<![CDATA[*/
-function test1()
-{
- var d = $('myDiv');
- alert(d.innerHTML);
-}
-
-function test2()
-{
- var divs = $('myDiv','myOtherDiv');
- for(i=0; i<divs.length; i++)
- {
- alert(divs[i].innerHTML);
- }
-}
-/*]]>*/
-</script>
-</com:TTextHighlighter>
-<p id="830733" class="block-content">
- Another nice thing about this function is that you can pass either the <tt>id</tt> string or the element object itself,
- which makes this function very useful when creating other functions that can also take either form of argument.
-</p>
-
-<h2 id="6605">Using the <tt>$F()</tt> function</h2>
-
-<p id="830734" class="block-content">
- The <tt>$F()</tt> function is a another welcome shortcut. It returns the value of any field input control,
- like text boxes or drop-down lists. The function can take as argument either the element <tt>id</tt> or the element object itself.
-</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_830253">
-<input type="text" id="userName" value="Joe Doe" />
-<input type="button" value=Test3 onclick="test3();" />
-
-<script type="text/javascript">
-/*<![CDATA[*/
-function test3()
-{
- alert($F('userName'));
-}
-/*]]>*/
-</script>
-</com:TTextHighlighter>
-
-</com:TContent>
diff --git a/demos/quickstart/protected/pages/Advanced/Scripts2.page b/demos/quickstart/protected/pages/Advanced/Scripts2.page
deleted file mode 100755
index 5d88b065..00000000
--- a/demos/quickstart/protected/pages/Advanced/Scripts2.page
+++ /dev/null
@@ -1,253 +0,0 @@
-<com:TContent ID="body" >
-<h1 id="6701">DOM Events and Javascript</h1>
-
-<h2 id="6702">Basic event handling</h2>
-
-<p id="840735" class="block-content">The syntax for working with events looks like the code below.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840254">
-Event.observe(element, name, observer, [useCapture]);
-</com:TTextHighlighter>
-
-<p id="840736" class="block-content">Assuming for a moment that we want to observe when a link was clicked,
-we could do the following:</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840255">
-// &lt;a id="clicker" href="http://foo.com"&gt;Click me&lt;/a&gt;
-Event.observe('clicker', 'click', function(event)
-{
- alert('clicked!');
-});
-</com:TTextHighlighter>
-
-<p id="840737" class="block-content">If we wanted to get the element that fired the event, we'd do this:</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840256">
-Event.observe('clicker', 'click', function(event)
-{
- alert(Event.element(event));
-});
-</com:TTextHighlighter>
-
-<h2 id="6703">Observing keystrokes</h2>
-
-<p id="840738" class="block-content">If we wanted to observe keystrokes for the entire document, we could do the following:</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840257">
-Event.observe(document, 'keypress', function(event)
-{
- if(Event.keyCode(event) == Event.KEY_TAB)
- alert('Tab Pressed');
-});
-</com:TTextHighlighter>
-
-<p id="840739" class="block-content">And lets say we wanted to keep track of what has been typed :</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840258">
-Event.observe('search', 'keypress', function(event)
-{
- Element.update('search-results', $F(Event.element(event)));
-});
-</com:TTextHighlighter>
-
-<p id="840740" class="block-content">Prototype defines properties inside the event object for some
-of the more common keys, so feel free to dig around in Prototype to
-see which ones those are.</p>
-
-<p id="840741" class="block-content">A final note on keypress events; If you'd like to detect a
-left click you can use <tt>Event.isLeftClick(event)</tt>.</p>
-
-<h2 id="6704">Getting the coordinates of the mouse pointer</h2>
-
-<p id="840742" class="block-content">Drag and drop, dynamic element resizing, games, and
-much more all require the ability to track the X and Y location of
-the mouse. Prototype makes this fairly simple. The code below tracks
-the X and Y position of the mouse and spits out those values into
-an input box named mouse.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840259">
-Event.observe(document, 'mousemove', function(event)
-{
- $('mouse').value = "X: " + Event.pointerX(event) +
- "px Y: " + Event.pointerY(event) + "px";
-});
-</com:TTextHighlighter>
-
-<p id="840743" class="block-content">If we wanted to observe the mouse location when it was
-hovering over a certain element, we'd just change the document argument to
-the id or element that was relevant.</p>
-
-<h2 id="6705">Stopping Propagation</h2>
-
-<p id="840744" class="block-content"><tt>Event.stop(event)</tt> will stop the propagation of an event .</p>
-
-<h2 id="6706">Events, Binding, and Objects</h2>
-
-<p id="840745" class="block-content">Everything has been fairly straight forward so far, but things
-start getting a little trickier when you need to work with events in
-and object-oriented environment. You have to deal with binding and funky
-looking syntax that might take a moment to get your head around.</p>
-
-<p id="840746" class="block-content">Lets look at some code so you can get a better understanding of what I'm talking about.</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840260">
-EventDispenser = Class.create();
-EventDispenser.prototype =
-{
- initialize: function(list)
- {
- this.list = list;
-
- // Observe clicks on our list items
- $$(this.list + " li").each(function(item)
- {
- Event.observe(item, 'click', this.showTagName.bindEvent(this));
- }.bind(this));
-
- // Observe when a key on the keyboard is pressed.
- // In the observer, we check for
- // the tab key and alert a message if it is pressed.
- Event.observe(document, 'keypress', this.onKeyPress.bindEvent(this));
-
- // Observe our fake live search box. When a user types
- // something into the box, the observer will take that
- // value(-1) and update our search-results div with it.
- Event.observe('search', 'keypress', this.onSearch.bindEvent(this));
-
- Event.observe(document, 'mousemove', this.onMouseMove.bindEvent(this));
- },
-
- // Arbitrary functions to respond to events
- showTagName: function(event)
- {
- alert(Event.element(event).tagName);
- },
-
- onKeyPress: function(event)
- {
- var code = event.keyCode;
- if(code == Event.KEY_TAB)
- alert('Tab key was pressed');
- },
-
- onSearch: function(event)
- {
- Element.update('search-results', $F(Event.element(event)));
- },
-
- onMouseMove: function(event)
- {
- $('mouse').value = "X: " + Event.pointerX(event) +
- "px Y: " + Event.pointerY(event) + "px";
- }
-}
-</com:TTextHighlighter>
-<p id="840747" class="block-content">Whoa! What's going on here? Well, we've defined our a
-custom class <tt>EventDispenser</tt>. We're going to be using this class
-to setup events for our document. Most of this code is a
-rewrite of the code we looked at earlier except this time, we
-are working from inside an object.</p>
-
-<p id="840748" class="block-content">Looking at the <tt>initialize</tt> method, we can really see how
-things are different now. Take a look at the code below:</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840261">
-// Observe clicks on our list items
-$$(this.list + " li").each(function(item)
-{
- Event.observe(item, 'click', this.showTagName.bindEvent(this));
-}.bind(this));
-</com:TTextHighlighter>
-
-<p id="840749" class="block-content">We've got iterators, binding and all sorts of stuff going on.
-Lets break down what this chunk of code is doing.</p>
-
-<p id="840750" class="block-content">First we are hunting for a collection of elements based on
-it's CSS selector. This uses the Prototype selector function <tt>$$()</tt>.
-After we've found the list items we are dealing with we send
-those into an each iteration where we will add our observers.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840262">
-Event.observe(item, 'click', this.showTagName.bindEvent(this));
-</com:TTextHighlighter>
-
-<p id="840751" class="block-content">Now looking at the code above, you'll notice the <tt>bindEvent</tt> function.
-This takes the method before it <tt>showTagName</tt> and treats it as the
-method that will be triggered when, in this case,
-someone clicks one of our list items.</p>
-
-<p id="840752" class="block-content">You'll also notice we pass this as an argument to the <tt>bindEvent</tt> function.
-This simply allows us to reference the object in context <tt>EventDispenser</tt>
-inside our function <tt>showTagName(event)</tt>. If the <tt>showTagName</tt> function
-requires additional parameters, you can attach them to the later parameters of <tt>bindEvent</tt>. For example</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840263">
-this.showTagName.bindEvent(this, param1, param2);
-
-//where the showTagName function is defined as
-showTime : function (event, param1, param2) { ... }
-</com:TTextHighlighter>
-
-<p id="840753" class="block-content">Moving on, you'll see <tt>bind(this)</tt> attached to our iterator function.
-This really has nothing to do with events, it is only here to allow me to
-use <tt>this</tt> inside the iterator. If we did not use <tt>bind(this)</tt>, I could not
-reference the method <tt>showTagName</tt> inside the iterator.</p>
-
-<p id="840754" class="block-content">Ok, so we'll move on to looking at our methods that actually get
-called when an event occurs. Since we've been dealing with <tt>showTagName</tt>, lets look at it.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840264">
-showTagName: function(event)
-{
- alert(Event.element(event).tagName);
-}
-</com:TTextHighlighter>
-
-<p id="840755" class="block-content">As you can see, this function accepts one argument--the event.
-In order for us to get the element which fired the event we need to
-pass that argument to <tt>Event.element</tt>. Now we can manipulate it at will.</p>
-
-<p id="840756" class="block-content">This covers the most confusing parts of our code. The text above is also
-relevant to the remaining parts of our code. If there is anything about
-this you don't understand, feel free to ask questions in the forum.</p>
-
-<h2 id="6707">Removing Event Listeners</h2>
-
-<p id="840757" class="block-content">This one threw me for a loop the first time I tried to use it.
-I tried something similar to what I did in the <tt>Event.observe</tt>
-call with the exception of using <tt>stopObserving</tt>, but nothing seemed
-to change. In other words, the code below does <b>NOT</b> work.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840265">
-$$(this.list + " li").each(function(item)
-{
- Event.stopObserving(item, 'click', this.showTagName);
-}.bind(this));
-</com:TTextHighlighter>
-
-<p id="840758" class="block-content">What's the deal here? The reason this does not work is because there
-is no pointer to the observer. This means that when we passed <tt>this.showTagName</tt>
-in the <tt>Event.observe</tt> method before hand, we passed it as an
-anonymous function. We can't reference an anonymous function
-because it simply does not have a pointer.</p>
-
-<p id="840759" class="block-content">So how do we get the job done? All we need to do is give the
-observing function a pointer, or the jargon free version: Set a variable
-that points to <tt>this.showTagName</tt>. Ok, lets change our code a bit.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840266">
-this.showTagObserver = this.showTagName.bindEvent(this);
-
-// Observe clicks on our list items
-$$(this.list + " li").each(function(item)
-{
- Event.observe(item, 'click', this.showTagObserver);
-}.bind(this));
-</com:TTextHighlighter>
-
-<p id="840760" class="block-content">Now we can remove the event listeners from our list like this:</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840267">
-$$(this.list + " li").each(function(item)
-{
- Event.stopObserving(item, 'click', this.showTagObserver);
-}.bind(this));
-</com:TTextHighlighter>
-
-</com:TContent>
diff --git a/demos/quickstart/protected/pages/Advanced/Scripts3.page b/demos/quickstart/protected/pages/Advanced/Scripts3.page
index 3f41abe1..b937e274 100755
--- a/demos/quickstart/protected/pages/Advanced/Scripts3.page
+++ b/demos/quickstart/protected/pages/Advanced/Scripts3.page
@@ -19,22 +19,31 @@ $this->getPage()->getClientScript()->registerPradoScript("effects");
</ul>
The available packaged libraries included in Prado are
<ul id="u2" class="block-content">
- <li><tt>prado</tt> : basic PRADO javascript framework based on Prototype</li>
- <li><tt>effects</tt> : visual effects from script.aculo.us</li>
- <li><tt>ajax</tt> : ajax and callback related based on Prototype</li>
- <li><tt>validator</tt> : validation</li>
+ <li><tt>jquery</tt> : <a href="https://jquery.com/">jQuery</a> javascript framework</li>
+ <li><tt>prado</tt> : basic PRADO javascript framework based on jQuery</li>
+ <li><tt>bootstrap</tt> : <a href="http://getbootstrap.com/">Bootstrap</a> front-end framework</li>
+ <li><tt>effects</tt> : visual effects based on <a href="https://jqueryui.com/">jQueryUI</a></li>
+ <li><tt>ajax</tt> : ajax and callback related based on jQuery</li>
+ <li><tt>validator</tt> : widgets validation</li>
<li><tt>logger</tt> : javascript logger and object browser</li>
- <li><tt>datepicker</tt> : datepicker control</li>
- <li><tt>colorpicker</tt> : colorpicker control</li>
+ <li><tt>datepicker</tt> : TDatepicker control</li>
+ <li><tt>colorpicker</tt> : TColorPicker control</li>
<li><tt>dragdrop</tt> : basic support for "drag and drop" control</li>
<li><tt>dragdropextra</tt> : extra support for "drag and drop" controls</li>
- <li><tt>slider</tt> : slider control</li>
+ <li><tt>slider</tt> : TSlider control</li>
<li><tt>keyboard</tt> : software keyboard control</li>
- <li><tt>tabpanel</tt> : tabpanel control</li>
+ <li><tt>tabpanel</tt> : TTabPanel control</li>
+ <li><tt>inlineeditor</tt> : TInPlaceTextBox. control</li>
<li><tt>activedatepicker</tt> : ajax version of the datepicker control</li>
<li><tt>activefileupload</tt> : ajax version of the fileupload control</li>
- <li><tt>accordion</tt> : accordion control</li>
- <li><tt>htmlarea</tt> : tinymce control</li>
+ <li><tt>accordion</tt> : TAccordion control</li>
+ <li><tt>ratings</tt> : TRatingList control</li>
+ <li><tt>htmlarea</tt> : <a href="http://www.tinymce.com/">tinyMCE</a> version 3 editor</li>
+ <li><tt>htmlarea4</tt> : <a href="http://www.tinymce.com/">tinyMCE</a> version 4 editor</li>
+ <li><tt>prototype</tt> : <a href="http://prototypejs.org/">prototype</a> javascript framework (only for compatibility with old custom controls)</li>
+ <li><tt>dragdrop</tt> : compatibility package for old, prototype-based drag&drop controls</li>
+ <li><tt>dragdropextra</tt> : compatiblity package for old, prototype-based drag&drop controls</li>
+ <li><tt>autocomplete</tt> : compatibility package for prototype-based TAutoComplete control</li>
</ul>
<p id="850761" class="block-content">The dependencies for each library are automatically resolved. Components
diff --git a/demos/quickstart/protected/pages/Advanced/es/Scripts1.page b/demos/quickstart/protected/pages/Advanced/es/Scripts1.page
deleted file mode 100755
index 96ab7760..00000000
--- a/demos/quickstart/protected/pages/Advanced/es/Scripts1.page
+++ /dev/null
@@ -1,96 +0,0 @@
-<com:TContent ID="body" >
-
-<h1 id="6601">Developer Notes for prototype.js</h1>
-This guide is based on the <a href="http://www.sergiopereira.com/articles/prototype.js.html">
-Developer Notes for prototype.js</a> by Sergio Pereira.
-
-<h2 id="6603">What is that?</h2>
-<p id="830726" class="block-content">
-In case you haven't already used it, <a href="http://prototype.conio.net">prototype.js</a> is a
- JavaScript library written by <a href="http://www.conio.net">Sam Stephenson</a>.
- This amazingly well thought and well written piece of <b>standards-compliant</b> code takes a lot of
- the burden associated with creating rich, highly interactive web pages that characterize the Web 2.0 off your back.
-</p>
-
-<p id="830727" class="block-content">
- If you tried to use this library recently, you probably noticed that documentation is not one
- of its strongest points. As many other developers before me, I got my head around prototype.js by
- reading the source code and experimenting with it. I thought it would be nice to take notes while
- I learned and share with everybody else.
-</p>
-<p id="830728" class="block-content">
- As you read the examples and the reference, developers familiar with the Ruby
- programming language will notice an intentional similarity between Ruby's
- built-in classes and many of the extensions implemented by this library.
-</p>
-
-
-<h2 id="6604">Using the <tt>$()</tt> function</h2>
-<p id="830729" class="block-content">
- The <tt>$()</tt> function is a handy shortcut to the all-too-frequent <tt>document.getElementById()</tt> function
- of the DOM. Like the DOM function, this one returns the element that has the id passed as an argument.
-</p>
-
-<p id="830730" class="block-content">
- Unlike the DOM function, though, this one goes further. You can pass more than one id and
- <tt>$()</tt> will return an <tt>Array</tt> object with
- all the requested elements. The example below should illustrate this.
-</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_830252">
-&lt;com:TClientScript UsingClientScripts="prado" /&gt;
-<div id="myDiv">
- <p id="830731" class="block-content">This is a paragraph</p>
-</div>
-
-<div id="myOtherDiv">
- <p id="830732" class="block-content">This is another paragraph</p>
-</div>
-
-<input type="button" value=Test1 onclick="test1();" />
-<input type="button" value=Test2 onclick="test2();" />
-
-<script type="text/javascript">
-/*<![CDATA[*/
-function test1()
-{
- var d = $('myDiv');
- alert(d.innerHTML);
-}
-
-function test2()
-{
- var divs = $('myDiv','myOtherDiv');
- for(i=0; i<divs.length; i++)
- {
- alert(divs[i].innerHTML);
- }
-}
-/*]]>*/
-</script>
-</com:TTextHighlighter>
-<p id="830733" class="block-content">
- Another nice thing about this function is that you can pass either the <tt>id</tt> string or the element object itself,
- which makes this function very useful when creating other functions that can also take either form of argument.
-</p>
-
-<h2 id="6605">Using the <tt>$F()</tt> function</h2>
-
-<p id="830734" class="block-content">
- The <tt>$F()</tt> function is a another welcome shortcut. It returns the value of any field input control,
- like text boxes or drop-down lists. The function can take as argument either the element <tt>id</tt> or the element object itself.
-</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_830253">
-<input type="text" id="userName" value="Joe Doe" />
-<input type="button" value=Test3 onclick="test3();" />
-
-<script type="text/javascript">
-/*<![CDATA[*/
-function test3()
-{
- alert($F('userName'));
-}
-/*]]>*/
-</script>
-</com:TTextHighlighter>
-
-</com:TContent>
diff --git a/demos/quickstart/protected/pages/Advanced/es/Scripts2.page b/demos/quickstart/protected/pages/Advanced/es/Scripts2.page
deleted file mode 100755
index 5d88b065..00000000
--- a/demos/quickstart/protected/pages/Advanced/es/Scripts2.page
+++ /dev/null
@@ -1,253 +0,0 @@
-<com:TContent ID="body" >
-<h1 id="6701">DOM Events and Javascript</h1>
-
-<h2 id="6702">Basic event handling</h2>
-
-<p id="840735" class="block-content">The syntax for working with events looks like the code below.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840254">
-Event.observe(element, name, observer, [useCapture]);
-</com:TTextHighlighter>
-
-<p id="840736" class="block-content">Assuming for a moment that we want to observe when a link was clicked,
-we could do the following:</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840255">
-// &lt;a id="clicker" href="http://foo.com"&gt;Click me&lt;/a&gt;
-Event.observe('clicker', 'click', function(event)
-{
- alert('clicked!');
-});
-</com:TTextHighlighter>
-
-<p id="840737" class="block-content">If we wanted to get the element that fired the event, we'd do this:</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840256">
-Event.observe('clicker', 'click', function(event)
-{
- alert(Event.element(event));
-});
-</com:TTextHighlighter>
-
-<h2 id="6703">Observing keystrokes</h2>
-
-<p id="840738" class="block-content">If we wanted to observe keystrokes for the entire document, we could do the following:</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840257">
-Event.observe(document, 'keypress', function(event)
-{
- if(Event.keyCode(event) == Event.KEY_TAB)
- alert('Tab Pressed');
-});
-</com:TTextHighlighter>
-
-<p id="840739" class="block-content">And lets say we wanted to keep track of what has been typed :</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840258">
-Event.observe('search', 'keypress', function(event)
-{
- Element.update('search-results', $F(Event.element(event)));
-});
-</com:TTextHighlighter>
-
-<p id="840740" class="block-content">Prototype defines properties inside the event object for some
-of the more common keys, so feel free to dig around in Prototype to
-see which ones those are.</p>
-
-<p id="840741" class="block-content">A final note on keypress events; If you'd like to detect a
-left click you can use <tt>Event.isLeftClick(event)</tt>.</p>
-
-<h2 id="6704">Getting the coordinates of the mouse pointer</h2>
-
-<p id="840742" class="block-content">Drag and drop, dynamic element resizing, games, and
-much more all require the ability to track the X and Y location of
-the mouse. Prototype makes this fairly simple. The code below tracks
-the X and Y position of the mouse and spits out those values into
-an input box named mouse.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840259">
-Event.observe(document, 'mousemove', function(event)
-{
- $('mouse').value = "X: " + Event.pointerX(event) +
- "px Y: " + Event.pointerY(event) + "px";
-});
-</com:TTextHighlighter>
-
-<p id="840743" class="block-content">If we wanted to observe the mouse location when it was
-hovering over a certain element, we'd just change the document argument to
-the id or element that was relevant.</p>
-
-<h2 id="6705">Stopping Propagation</h2>
-
-<p id="840744" class="block-content"><tt>Event.stop(event)</tt> will stop the propagation of an event .</p>
-
-<h2 id="6706">Events, Binding, and Objects</h2>
-
-<p id="840745" class="block-content">Everything has been fairly straight forward so far, but things
-start getting a little trickier when you need to work with events in
-and object-oriented environment. You have to deal with binding and funky
-looking syntax that might take a moment to get your head around.</p>
-
-<p id="840746" class="block-content">Lets look at some code so you can get a better understanding of what I'm talking about.</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840260">
-EventDispenser = Class.create();
-EventDispenser.prototype =
-{
- initialize: function(list)
- {
- this.list = list;
-
- // Observe clicks on our list items
- $$(this.list + " li").each(function(item)
- {
- Event.observe(item, 'click', this.showTagName.bindEvent(this));
- }.bind(this));
-
- // Observe when a key on the keyboard is pressed.
- // In the observer, we check for
- // the tab key and alert a message if it is pressed.
- Event.observe(document, 'keypress', this.onKeyPress.bindEvent(this));
-
- // Observe our fake live search box. When a user types
- // something into the box, the observer will take that
- // value(-1) and update our search-results div with it.
- Event.observe('search', 'keypress', this.onSearch.bindEvent(this));
-
- Event.observe(document, 'mousemove', this.onMouseMove.bindEvent(this));
- },
-
- // Arbitrary functions to respond to events
- showTagName: function(event)
- {
- alert(Event.element(event).tagName);
- },
-
- onKeyPress: function(event)
- {
- var code = event.keyCode;
- if(code == Event.KEY_TAB)
- alert('Tab key was pressed');
- },
-
- onSearch: function(event)
- {
- Element.update('search-results', $F(Event.element(event)));
- },
-
- onMouseMove: function(event)
- {
- $('mouse').value = "X: " + Event.pointerX(event) +
- "px Y: " + Event.pointerY(event) + "px";
- }
-}
-</com:TTextHighlighter>
-<p id="840747" class="block-content">Whoa! What's going on here? Well, we've defined our a
-custom class <tt>EventDispenser</tt>. We're going to be using this class
-to setup events for our document. Most of this code is a
-rewrite of the code we looked at earlier except this time, we
-are working from inside an object.</p>
-
-<p id="840748" class="block-content">Looking at the <tt>initialize</tt> method, we can really see how
-things are different now. Take a look at the code below:</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840261">
-// Observe clicks on our list items
-$$(this.list + " li").each(function(item)
-{
- Event.observe(item, 'click', this.showTagName.bindEvent(this));
-}.bind(this));
-</com:TTextHighlighter>
-
-<p id="840749" class="block-content">We've got iterators, binding and all sorts of stuff going on.
-Lets break down what this chunk of code is doing.</p>
-
-<p id="840750" class="block-content">First we are hunting for a collection of elements based on
-it's CSS selector. This uses the Prototype selector function <tt>$$()</tt>.
-After we've found the list items we are dealing with we send
-those into an each iteration where we will add our observers.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840262">
-Event.observe(item, 'click', this.showTagName.bindEvent(this));
-</com:TTextHighlighter>
-
-<p id="840751" class="block-content">Now looking at the code above, you'll notice the <tt>bindEvent</tt> function.
-This takes the method before it <tt>showTagName</tt> and treats it as the
-method that will be triggered when, in this case,
-someone clicks one of our list items.</p>
-
-<p id="840752" class="block-content">You'll also notice we pass this as an argument to the <tt>bindEvent</tt> function.
-This simply allows us to reference the object in context <tt>EventDispenser</tt>
-inside our function <tt>showTagName(event)</tt>. If the <tt>showTagName</tt> function
-requires additional parameters, you can attach them to the later parameters of <tt>bindEvent</tt>. For example</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840263">
-this.showTagName.bindEvent(this, param1, param2);
-
-//where the showTagName function is defined as
-showTime : function (event, param1, param2) { ... }
-</com:TTextHighlighter>
-
-<p id="840753" class="block-content">Moving on, you'll see <tt>bind(this)</tt> attached to our iterator function.
-This really has nothing to do with events, it is only here to allow me to
-use <tt>this</tt> inside the iterator. If we did not use <tt>bind(this)</tt>, I could not
-reference the method <tt>showTagName</tt> inside the iterator.</p>
-
-<p id="840754" class="block-content">Ok, so we'll move on to looking at our methods that actually get
-called when an event occurs. Since we've been dealing with <tt>showTagName</tt>, lets look at it.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840264">
-showTagName: function(event)
-{
- alert(Event.element(event).tagName);
-}
-</com:TTextHighlighter>
-
-<p id="840755" class="block-content">As you can see, this function accepts one argument--the event.
-In order for us to get the element which fired the event we need to
-pass that argument to <tt>Event.element</tt>. Now we can manipulate it at will.</p>
-
-<p id="840756" class="block-content">This covers the most confusing parts of our code. The text above is also
-relevant to the remaining parts of our code. If there is anything about
-this you don't understand, feel free to ask questions in the forum.</p>
-
-<h2 id="6707">Removing Event Listeners</h2>
-
-<p id="840757" class="block-content">This one threw me for a loop the first time I tried to use it.
-I tried something similar to what I did in the <tt>Event.observe</tt>
-call with the exception of using <tt>stopObserving</tt>, but nothing seemed
-to change. In other words, the code below does <b>NOT</b> work.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840265">
-$$(this.list + " li").each(function(item)
-{
- Event.stopObserving(item, 'click', this.showTagName);
-}.bind(this));
-</com:TTextHighlighter>
-
-<p id="840758" class="block-content">What's the deal here? The reason this does not work is because there
-is no pointer to the observer. This means that when we passed <tt>this.showTagName</tt>
-in the <tt>Event.observe</tt> method before hand, we passed it as an
-anonymous function. We can't reference an anonymous function
-because it simply does not have a pointer.</p>
-
-<p id="840759" class="block-content">So how do we get the job done? All we need to do is give the
-observing function a pointer, or the jargon free version: Set a variable
-that points to <tt>this.showTagName</tt>. Ok, lets change our code a bit.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840266">
-this.showTagObserver = this.showTagName.bindEvent(this);
-
-// Observe clicks on our list items
-$$(this.list + " li").each(function(item)
-{
- Event.observe(item, 'click', this.showTagObserver);
-}.bind(this));
-</com:TTextHighlighter>
-
-<p id="840760" class="block-content">Now we can remove the event listeners from our list like this:</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840267">
-$$(this.list + " li").each(function(item)
-{
- Event.stopObserving(item, 'click', this.showTagObserver);
-}.bind(this));
-</com:TTextHighlighter>
-
-</com:TContent>
diff --git a/demos/quickstart/protected/pages/Advanced/id/Scripts1.page b/demos/quickstart/protected/pages/Advanced/id/Scripts1.page
deleted file mode 100755
index 51535de1..00000000
--- a/demos/quickstart/protected/pages/Advanced/id/Scripts1.page
+++ /dev/null
@@ -1,86 +0,0 @@
-<com:TContent ID="body" >
-
-<h1 id="6601">Catatan Pengembang untuk prototype.js</h1>
-Bimbingan ini didasarkan pada <a href="http://www.sergiopereira.com/articles/prototype.js.html">
-Catatan Pengembang untuk prototype.js</a> oleh Sergio Pereira.
-
-<h2 id="6603">Apa itu?</h2>
-<p id="830726" class="block-content">
-Dalam hal Anda tidak pernah menggunakannya, <a href="http://prototype.conio.net">prototype.js</a> adalah librari
- JavaScript yang ditulis oleh <a href="http://www.conio.net">Sam Stephenson</a>.
- Pemikiran yang hebat ini dan kode <b>sesuai-standar</b> yang ditulis dengan baik mengambil banyak beban terkait dengan pembuatan halaman web sangat interaktif dan kaya yang mengkarakterkan Web 2.0 di belakang Anda.
-</p>
-
-<p id="830727" class="block-content">
- Jika Anda baru saja mencoba menggunakan librari ini, Anda mungkin mencatat bahwa dokumentasi bukanlah salah satu titik yang terkuat. Seperti banyak pengembang lain sebelum saya, saya mempelajari prototype.js dengan membaca kode sumber dan melakukan percobaan denganya. Saya pikir akan baik jika mengambil catatan selama saya mempelajari dan berbagi dengan orang lain.
-</p>
-<p id="830728" class="block-content">
- Setelah Anda membaca contoh dan referensi, para pengembang yang terbiasa dengan bahasa pemrograman Ruby akan mencatat kesamaan maksud antara kelas built-in Ruby dan banyak ekstensi diimplementasikan oleh librari ini.
-</p>
-
-
-<h2 id="6604">Menggunakan fungsi <tt>$()</tt></h2>
-<p id="830729" class="block-content">
- Fungsi <tt>$()</tt> adalah jalan pintas yang siap digunakan untuk fungsi yang semua-terlalu-sering <tt>document.getElementById()</tt> terhadap DOM. Seperti fungsi DOM, fungsi ini mengembalikan elemen yang id-nya dikirimkan sebagai sebuah argumen.
-</p>
-
-<p id="830730" class="block-content">
- Tidak seperti fungsi DOM, bagaimanapun juga, yang satu ini melampauinya. Anda dapat mengirimkan lebih dari satu id dan
- <tt>$()</tt> akan mengembalikan obyek <tt>Array</tt> dengan semua elemen yang diminta. Contoh di bawah seharunya menggambarkan ini.
-</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_830252">
-&lt;com:TClientScript UsingClientScripts="prado" /&gt;
-<div id="myDiv">
- <p id="830731" class="block-content">This is a paragraph</p>
-</div>
-
-<div id="myOtherDiv">
- <p id="830732" class="block-content">This is another paragraph</p>
-</div>
-
-<input type="button" value=Test1 onclick="test1();" />
-<input type="button" value=Test2 onclick="test2();" />
-
-<script type="text/javascript">
-/*<![CDATA[*/
-function test1()
-{
- var d = $('myDiv');
- alert(d.innerHTML);
-}
-
-function test2()
-{
- var divs = $('myDiv','myOtherDiv');
- for(i=0; i<divs.length; i++)
- {
- alert(divs[i].innerHTML);
- }
-}
-/*]]>*/
-</script>
-</com:TTextHighlighter>
-<p id="830733" class="block-content">
- Hal baik lainnya dari fungsi ini adalah bahwa Anda bisa mengirimkan baik string <tt>id</tt> ataupun elemen obyek itu sendiri, yang menjadikan fungsi ini sangat berguna ketika membuat fungsi lain yang juga mengambil bentuk argumen.
-</p>
-
-<h2 id="6605">Menggunakan fungsi <tt>$F()</tt></h2>
-
-<p id="830734" class="block-content">
- Fungsi <tt>$F()</tt> adalah jalan pintas penyambutan lainnya. Ia mengembalikan nilai dari setiap kontrol input field, seperti kotak teks atau daftar drop-down. Fungsi bisa diambil sebagai argumen baik elemen <tt>id</tt> ataupun elemen obyek itu sendiri.
-</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_830253">
-<input type="text" id="userName" value="Joe Doe" />
-<input type="button" value=Test3 onclick="test3();" />
-
-<script type="text/javascript">
-/*<![CDATA[*/
-function test3()
-{
- alert($F('userName'));
-}
-/*]]>*/
-</script>
-</com:TTextHighlighter>
-
-</com:TContent>
diff --git a/demos/quickstart/protected/pages/Advanced/id/Scripts2.page b/demos/quickstart/protected/pages/Advanced/id/Scripts2.page
deleted file mode 100755
index 80277628..00000000
--- a/demos/quickstart/protected/pages/Advanced/id/Scripts2.page
+++ /dev/null
@@ -1,214 +0,0 @@
-<com:TContent ID="body" >
-<h1 id="6701">Event DOM dan Javascript</h1>
-
-<h2 id="6702">Penanganan event dasar</h2>
-
-<p id="840735" class="block-content">Sintaks untuk bekerja dengan event terlihat seperti kode di bawah.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840254">
-Event.observe(element, name, observer, [useCapture]);
-</com:TTextHighlighter>
-
-<p id="840736" class="block-content">Menganggap untuk saat ini kita ingin mengamati sebuah link yang diklik, kita dapat melakukan yang berikut:</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840255">
-// &lt;a id="clicker" href="http://foo.com"&gt;Click me&lt;/a&gt;
-Event.observe('clicker', 'click', function(event)
-{
- alert('clicked!');
-});
-</com:TTextHighlighter>
-
-<p id="840737" class="block-content">Jika kita menginginkan untuk mendapatkan elemen yang memicu event, kita melakukan ini:</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840256">
-Event.observe('clicker', 'click', function(event)
-{
- alert(Event.element(event));
-});
-</com:TTextHighlighter>
-
-<h2 id="6703">Mengamati tekanan tombol</h2>
-
-<p id="840738" class="block-content">Jika kita ingin mengamati tekanan tombol untuk seluruh dokumen, kita dapat melakukan yang berikut:</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840257">
-Event.observe(document, 'keypress', function(event)
-{
- if(Event.keyCode(event) == Event.KEY_TAB)
- alert('Tab Pressed');
-});
-</com:TTextHighlighter>
-
-<p id="840739" class="block-content">Dan katakanlah kita ingin melacak apa yang telak diketikan:</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840258">
-Event.observe('search', 'keypress', function(event)
-{
- Element.update('search-results', $F(Event.element(event)));
-});
-</com:TTextHighlighter>
-
-<p id="840740" class="block-content">Prototipe mendefinisikan properti di dalam obyek event untuk beberapa dari tombol yang lebih umum, maka jangan ragu-ragu untuk mencari di sekitar Prototype guna melihat yang mana saja itu.</p>
-
-<p id="840741" class="block-content">Catatan terakhir pada event tekanan tombol; Jika Anda ingin mendeteksi klik kiri, Anda bisa menggunakan <tt>Event.isLeftClick(event)</tt>.</p>
-
-<h2 id="6704">Mendapatkan koordinat dari penunjuk mouse</h2>
-
-<p id="840742" class="block-content">Tarik dan jatuhkan, pengukuran ulang elemen dinamis, permainan, dan lebih banyak lagi, semuanya memerlukan kemampuan untuk melacak lokasi X dan Y dari mouse. Prototipe menjadikan hal ini cukup sederhana. Kode di bawah melacak posisi X dan Y dari mouse dan memindahkan nilainya ke dalam kotak input bernama mouse.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840259">
-Event.observe(document, 'mousemove', function(event)
-{
- $('mouse').value = "X: " + Event.pointerX(event) +
- "px Y: " + Event.pointerY(event) + "px";
-});
-</com:TTextHighlighter>
-
-<p id="840743" class="block-content">Jika kita ingin mengamati lokasi mouse saat ia melewati elemen tertentu, cukup ubah argumen dokumen ke id atau elemen yang relevan.</p>
-
-<h2 id="6705">Menghentikan Propagasi</h2>
-
-<p id="840744" class="block-content"><tt>Event.stop(event)</tt> akan menghentikan propagasi sebuah event .</p>
-
-<h2 id="6706">Event, Penyatuan, dan Obyek</h2>
-
-<p id="840745" class="block-content">Sejauh ini semuanya sudah jelas, tapi sesuatu mulai menjadi sedikit lebih rumit ketika Anda perlu bekerja dengan event dalam lingkungan obyek-terorientasi. Anda harus berhadapan dengan penyatuan dan sintaks yang terlihat aneh yang memerlukan beberapa waktu bagi Anda untuk mengetahuinya.</p>
-
-<p id="840746" class="block-content">Mari kita lihat pada beberapa kode agar Anda bisa mendapatkan pengertian yang lebih baik atas apa yang sedang saya bicarakan.</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840260">
-EventDispenser = Class.create();
-EventDispenser.prototype =
-{
- initialize: function(list)
- {
- this.list = list;
-
- // Amati klik pada item list kita
- $$(this.list + " li").each(function(item)
- {
- Event.observe(item, 'click', this.showTagName.bindEvent(this));
- }.bind(this));
-
- // Amati saat tombol pada keyboard ditekan.
- // Dalam pengamat, kita memeriksa
- // tombol tab dan memunculkan pesan jika ditekan.
- Event.observe(document, 'keypress', this.onKeyPress.bindEvent(this));
-
- // Amati kotak pencarian kita yang palsu. Ketika pengguna mengetik
- // sesuatu ke dalam kotak, pengamat akan mengambil nilai (-1) itu
- // dan memutakhirkan hasil pencarian div dengannya.
- Event.observe('search', 'keypress', this.onSearch.bindEvent(this));
-
- Event.observe(document, 'mousemove', this.onMouseMove.bindEvent(this));
- },
-
- // Fungsi bebas untuk merespon event
- showTagName: function(event)
- {
- alert(Event.element(event).tagName);
- },
-
- onKeyPress: function(event)
- {
- var code = event.keyCode;
- if(code == Event.KEY_TAB)
- alert('Tab key was pressed');
- },
-
- onSearch: function(event)
- {
- Element.update('search-results', $F(Event.element(event)));
- },
-
- onMouseMove: function(event)
- {
- $('mouse').value = "X: " + Event.pointerX(event) +
- "px Y: " + Event.pointerY(event) + "px";
- }
-}
-</com:TTextHighlighter>
-<p id="840747" class="block-content">Wah! Apa yang terjadi di sini? Kita telah mendefinisikan kelas kustom kita <tt>EventDispenser</tt>. Kita akan menggunakan kelas ini untuk menyiapkan event untuk dokumenkita. Banyak dari kode ini ditulis ulang yang kita lihat di awal kecuali kali ini, kita bekerja dari dalam sebuah obyek.</p>
-
-<p id="840748" class="block-content">Melihat metode <tt>initialize</tt>, sebenarnya kita dapat melihat bagaimana sesuatu menjadi berbeda sekarang. Lihat kode di bawah ini:</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840261">
-// Observe clicks on our list items
-$$(this.list + " li").each(function(item)
-{
- Event.observe(item, 'click', this.showTagName.bindEvent(this));
-}.bind(this));
-</com:TTextHighlighter>
-
-<p id="840749" class="block-content">Kita mendapatkan iterator, penyatuan dan semua hal lainnya. Mari kita rinci apa yang dikerjakan kode ini.</p>
-
-<p id="840750" class="block-content">Pertama kita memburu koleksi elemen berdasarkan selektor CSS. Ini menggunakan fungsi selektor Prototipe <tt>$$()</tt>.
-Setelah kita menemukan daftar item kita berhadapan dengan apa yang kita kirim ke dalam setiap iterasi di mana kita akan menambahkan pengamat kita.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840262">
-Event.observe(item, 'click', this.showTagName.bindEvent(this));
-</com:TTextHighlighter>
-
-<p id="840751" class="block-content">Sekarang, melihat kode di atas, Anda akan mencatat fungsi <tt>bindEvent</tt>. Ini mengambil metode sebelumnya <tt>showTagName</tt> dan memperlakukannya sebagai metode yang akan dipicu ketika seseorang mengklik salah satu dari item daftar kita.</p>
-
-<p id="840752" class="block-content">Anda juga akan mencatat bahwa kita mengirimkan ini sebagai argumen ke fungsi <tt>bindEvent</tt>.
-Ini membolehkan kita untuk mereferensi obyek dalam konteks <tt>EventDispenser</tt>
-di dalam fungsi <tt>showTagName(event)</tt> kita. Jika fungsi <tt>showTagName</tt> memerlukan parameter tambahan, Anda melampirkannya ke parameter terakhir dari <tt>bindEvent</tt>. Sebagai contoh</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840263">
-this.showTagName.bindEvent(this, param1, param2);
-
-//di mana fungsi showTagName didefinisikan seperti
-showTime : function (event, param1, param2) { ... }
-</com:TTextHighlighter>
-
-<p id="840753" class="block-content">Selanjutnya, Anda akan melihat <tt>bind(this)</tt> yang dilampirkan ke fungsi iterator.
-Ini sama sekali tidak berkaitan dengan event, ia berada di sini untuk membolehkan saya menggunakan <tt>this</tt> di dalam iterator. Jika kita tidak menggunakan <tt>bind(this)</tt>, saya tidak bisa mereferensi metode <tt>showTagName</tt> di dalam iterator.</p>
-
-<p id="840754" class="block-content">Ok, kita berlanjut untuk melihat metode kita yang sebenarnya dipanggil saat terjadi event. Karena kita sudah berhadapan dengan <tt>showTagName</tt>, mari kita lihat itu.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840264">
-showTagName: function(event)
-{
- alert(Event.element(event).tagName);
-}
-</com:TTextHighlighter>
-
-<p id="840755" class="block-content">Seperti yang Anda lihat, fungsi ini menerima satu argumen--event.
-Agar kita mendapatkan elemen yang memicu event kita perlu mengirimkan argumen ke <tt>Event.element</tt>. Sekarang kita dapat memanipulasinya kapan saja.</p>
-
-<p id="840756" class="block-content">Ini mencakup bagian yang paling membingungkan dari kode kita. Teks di atas juga relevan untuk bagian sisa dari kode kita. Jika ada sesuatu mengenai ini yang tidak Anda mengerti, jangan ragu-ragu untuk mengajukan pertanyaan dalam forum.</p>
-
-<h2 id="6707">Menghapus Pendengar Event</h2>
-
-<p id="840757" class="block-content">Yang satu ini melontarkan saya dari lingkaran untuk pertama kali saya mencoba menggunakannya.
-Saya mencoba sesuatu yang mirip dengan apa yang saya lakukan dalam pemanggilan <tt>Event.observe</tt> dengan kekecualian penggunaan <tt>stopObserving</tt>, tapi tidak ada yang berubah. Dengan kata lain, kode di bawah ini <b>TIDAK</b> bekerja.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840265">
-$$(this.list + " li").each(function(item)
-{
- Event.stopObserving(item, 'click', this.showTagName);
-}.bind(this));
-</com:TTextHighlighter>
-
-<p id="840758" class="block-content">Apa yang terjadi di sini? Alasan ini tidak bekerja karena tidak ada penunjuk ke pengamat. Ini berarti bahwa ketika kita mengirimkan <tt>this.showTagName</tt> dalam metode <tt>Event.observe</tt> sebelumnya, kita mengirimkannya sebagai fungsi anonim. Kita tidak bisa mereferensi fungsi anonim karena ia tidak mempunyai penunjuk.</p>
-
-<p id="840759" class="block-content">Lalu bagaimana kita yakin pekerjaan diselesaikan? Semua yang kita perlukan adalah memberikan fungsi mengamati penunjuk, atau kelompok versi bebas: Setel variabel yang mengarah ke <tt>this.showTagName</tt>. Ok, mari kita ubah kode kita sedikit.</p>
-
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840266">
-this.showTagObserver = this.showTagName.bindEvent(this);
-
-// Amati klik pada item list kita
-$$(this.list + " li").each(function(item)
-{
- Event.observe(item, 'click', this.showTagObserver);
-}.bind(this));
-</com:TTextHighlighter>
-
-<p id="840760" class="block-content">Sekarang kita bisa menghapus pendengar event dari daftar kita seperti ini:</p>
-<com:TTextHighlighter Language="javascript" CssClass="source block-content" id="code_840267">
-$$(this.list + " li").each(function(item)
-{
- Event.stopObserving(item, 'click', this.showTagObserver);
-}.bind(this));
-</com:TTextHighlighter>
-
-</com:TContent>
diff --git a/demos/quickstart/protected/pages/Controls/HtmlArea4.page b/demos/quickstart/protected/pages/Controls/HtmlArea4.page
index 1fa33424..17c87e18 100755
--- a/demos/quickstart/protected/pages/Controls/HtmlArea4.page
+++ b/demos/quickstart/protected/pages/Controls/HtmlArea4.page
@@ -1,6 +1,6 @@
<com:TContent ID="body" >
-<h1>THtmlArea4</h1>
+<h1 id="86013">THtmlArea4</h1>
<com:DocLink ClassPath="System.Web.UI.WebControls.THtmlArea4" />
<p class="block-content">
diff --git a/demos/quickstart/protected/pages/Controls/Markdown.page b/demos/quickstart/protected/pages/Controls/Markdown.page
index d7cc00c6..0285ed32 100644
--- a/demos/quickstart/protected/pages/Controls/Markdown.page
+++ b/demos/quickstart/protected/pages/Controls/Markdown.page
@@ -1,6 +1,6 @@
<com:TContent ID="body" >
-<h1>TMarkdown</h1>
+<h1 id="108014">TMarkdown</h1>
<com:DocLink ClassPath="System.Web.UI.WebControls.TMarkdown" />
<p class="block-content">
diff --git a/demos/quickstart/protected/pages/Database/ViewsArUpdate.page b/demos/quickstart/protected/pages/Database/ViewsArUpdate.page
index 5dd084c4..2df1d3d7 100644
--- a/demos/quickstart/protected/pages/Database/ViewsArUpdate.page
+++ b/demos/quickstart/protected/pages/Database/ViewsArUpdate.page
@@ -1,6 +1,6 @@
<com:TContent ID="body" >
<h1 id="138046">Views - AR Classes Update</h1>
-<com:SinceVersion Version="4.0" />
+<com:SinceVersion Version="3.3" />
<p class="block-content">
Usually when you use <tt>Active Records Classes</tt> to interact with your Data Base
you also build some proper views to handle them. To save every element of your views in your Data Base
@@ -9,9 +9,9 @@
Thats why Prado offers an automatic mechanism to update your views from your AR Classes and vice versa.
</p>
-<h2>Updating views from AR Classes</h2>
+<h2 id="244034">Updating views from AR Classes</h2>
-<p>Instead of assign each attribute in your AR Class to your view controls like this:</p>
+<p id="1220005" class="block-content">Instead of assign each attribute in your AR Class to your view controls like this:</p>
<com:TTextHighlighter CssClass="source block-content">
$student = AR_Student::finder()->findByPk(1);
$this->name->Text = $student->name;
@@ -20,7 +20,7 @@ $this->gender->Text = $student->gender;
$this->average->Text = $student->average;
</com:TTextHighlighter>
-<p>You can do the same as follows:</p>
+<p id="1220006" class="block-content">You can do the same as follows:</p>
<com:TTextHighlighter CssClass="source block-content">
$student = AR_Student::finder()->findByPk(1);
@@ -28,8 +28,8 @@ $this->tryToUpdateView($student);
</com:TTextHighlighter>
-<h2>Updating AR Classes from views</h2>
-<p>Instead of assign each attribute in your views to your AR Classes like this:</p>
+<h2 id="244035">Updating AR Classes from views</h2>
+<p id="1220007" class="block-content">Instead of assign each attribute in your views to your AR Classes like this:</p>
<com:TTextHighlighter CssClass="source block-content">
$student = new AR_Student();
$student->name = $this->name->Text;
@@ -39,7 +39,7 @@ $student->average = $this->average->Text;
$student->save();
</com:TTextHighlighter>
-<p>You can do the same as follows:</p>
+<p id="1220008" class="block-content">You can do the same as follows:</p>
<com:TTextHighlighter CssClass="source block-content">
$student = new AR_Student();
diff --git a/demos/quickstart/protected/pages/Fundamentals/Pages.page b/demos/quickstart/protected/pages/Fundamentals/Pages.page
index 58f4f06d..3e03a24c 100755
--- a/demos/quickstart/protected/pages/Fundamentals/Pages.page
+++ b/demos/quickstart/protected/pages/Fundamentals/Pages.page
@@ -15,7 +15,7 @@ A form submission is called <i>postback</i> if the submission is made to the pag
<tt>TPage</tt> has a <tt>IsPostBack</tt> property exposing whether the current request being handled is the first request for this page or the consequence of a postback.
</p>
-<h2>CallBack</h2>
+<h2 id="34012">CallBack</h2>
<p class="block-content">
A <i>callback</i> is a special form submission that, instead of requiring a full page reload on the browser, gets executed in the background through an ajax call. So, a callback is considered a postback too, but not vice versa.
<br/>
diff --git a/demos/quickstart/protected/pages/GettingStarted/CommandLine.page b/demos/quickstart/protected/pages/GettingStarted/CommandLine.page
index 3619d3d9..9e919212 100644
--- a/demos/quickstart/protected/pages/GettingStarted/CommandLine.page
+++ b/demos/quickstart/protected/pages/GettingStarted/CommandLine.page
@@ -110,22 +110,22 @@ PostRecord#1
</com:TTextHighlighter>
</p>
-<h2>Creating Active Record Classes</h2>
-<p>
+<h2 id="18007">Creating Active Record Classes</h2>
+<p id="90001" class="block-content">
In the blog demo project, we need to create two <a href="?page=Database.ActiveRecord">Active Record</a> classes, <tt>UserRecord</tt> and <tt>PostRecord</tt>, to represent data records in the <tt>users</tt> and <tt>posts</tt> tables, respectively. Active Record classes must extend from the base class <tt>ActiveRecord</tt>, and must define property names that matches with the field names of the corresponding table.
</p>
-<p>
+<p id="90002" class="block-content">
To better organize our directories, we create a new directory <tt>protected/database</tt> to hold the class files. We also modify our application configuration by inserting the following lines. It is equivalent to adding the directory <tt>protected/database</tt> to PHP include_path, which allows us to use the classes without explicitly including them.
</p>
-<com:TTextHighlighter CssClass="source" Language="xml">
+<com:TTextHighlighter CssClass="source block-content" id="code_90016" Language="xml">
<paths>
<using namespace="Application.database.*" />
</paths>
</com:TTextHighlighter>
-<p>
+<p id="90003" class="block-content">
At the prompt, enter the following two commands to create <tt>UserRecord</tt> and <tt>PostRecord</tt> classes:
</p>
@@ -135,7 +135,7 @@ At the prompt, enter the following two commands to create <tt>UserRecord</tt> an
>> generate posts Application.database.PostRecord
</com:TTextHighlighter>
-<p>
+<p id="90004" class="block-content">
Here we used the <a href="?page=Fundamentals.Components1">namespace format</a> again to specify the classes to be created. The path <tt>Application.database.UserRecord</tt> indicates that we want the <tt>UserRecord</tt> class file to be <tt>protected/database/UserRecord.php</tt>.
</p>
diff --git a/demos/quickstart/protected/pages/GettingStarted/Installation.page b/demos/quickstart/protected/pages/GettingStarted/Installation.page
index 956f53c2..f59eed70 100755
--- a/demos/quickstart/protected/pages/GettingStarted/Installation.page
+++ b/demos/quickstart/protected/pages/GettingStarted/Installation.page
@@ -13,7 +13,7 @@ The minimum requirement by PRADO is that the Web server support PHP 5.3.3. PRADO
PRADO can be installed as a standalone package or using <a href="http://getcomposer.org/">composer</a>
</p>
<div id="install-steps" class="block-content">
-<h3>Standalone package</h3>
+<h3 id="6001">Standalone package</h3>
<ol>
<li>Go to <a href="http://www.pradosoft.com/download/">pradosoft.com</a> to grab the latest version of PRADO.</li>
<li>Unpack the PRADO release file to a Web-accessible directory.
@@ -28,7 +28,7 @@ If you encounter any problems with the demo applications, please use the PRADO r
</p>
<div id="install-steps" class="block-content">
-<h3>Composer install</h3>
+<h3 id="6002">Composer install</h3>
<ol>
<li>If you don't have installed composer already, install it globally:
<com:TTextHighlighter CssClass="source block-content">
diff --git a/demos/quickstart/protected/pages/GettingStarted/Upgrading32.page b/demos/quickstart/protected/pages/GettingStarted/Upgrading32.page
index e2378ed5..7e630488 100644
--- a/demos/quickstart/protected/pages/GettingStarted/Upgrading32.page
+++ b/demos/quickstart/protected/pages/GettingStarted/Upgrading32.page
@@ -1,6 +1,6 @@
<com:TContent ID="body" >
-<h1>Upgrading from v3.2</h1>
+<h1 id="12003">Upgrading from v3.2</h1>
<div class="block-content">
<p class="block-content">
@@ -17,7 +17,7 @@ We summarize in the following the most significant changes in v3.3 to help devel
</p>
</div>
-<h2>Basic Prototype to jQuery javascript porting</h2>
+<h2 id="12004">Basic Prototype to jQuery javascript porting</h2>
<p class="block-content">
The number one rule on writing jQuery javascript code is to read the <a href="http://api.jquery.com/">jQuery documentation</a>. Porting code from Prototype to jQuery needs some effort: here's a basic lookup table to port existing code:
</p>
@@ -168,7 +168,7 @@ The number one rule on writing jQuery javascript code is to read the <a href="ht
</tr>
</table>
-<h2>PRADO specific code changes</h2>
+<h2 id="12005">PRADO specific code changes</h2>
<p class="block-content">
PRADO
Porting prado to jQuery some method signatures has changed, or have been adapted:
@@ -207,7 +207,7 @@ Porting prado to jQuery some method signatures has changed, or have been adapted
</tr>
</table>
-<h2>Specific controls changes</h2>
+<h2 id="12006">Specific controls changes</h2>
<p class="block-content">
Some Prado controls were based on specific extensions of the Prototype + Scriptaculous javascript framework, and they have been deprecated now that jQuery has become the primary js framework in PRADO.
PRADO 3.3 introduces jQuery-based counterpart for these controls and encourage everyone to port their code to the new controls, but the old controls are still supposed to work with some minor annoyance:
diff --git a/demos/quickstart/protected/pages/GettingStarted/Wsat.page b/demos/quickstart/protected/pages/GettingStarted/Wsat.page
index 3d07e6f2..a76ca163 100644
--- a/demos/quickstart/protected/pages/GettingStarted/Wsat.page
+++ b/demos/quickstart/protected/pages/GettingStarted/Wsat.page
@@ -1,5 +1,5 @@
<com:TContent ID="body">
- <h1>Web Site Administration Tool</h1>
+ <h1 id="20008">Web Site Administration Tool</h1>
<p class="block-content">
Web Site Administration Tool (WSAT) is a development tool which allows you to perform several
tedious tasks of a PRADO project in a GUI fashion. Its inspired in both Asp.Net - Web Site Administration Tool and Yii's Gii.
@@ -12,12 +12,12 @@
</ul>
</p>
- <h2>Requirements</h2>
+ <h2 id="20009">Requirements</h2>
<p class="block-content">
To use WSAT, you need to add in your project configuration file: <tt>application.xml</tt>,
in the services section the wsat service like follows:
-<com:TTextHighlighter CssClass="source" Language="xml">
+<com:TTextHighlighter CssClass="source block-content" id="code_100018" Language="xml">
<services>
...
<service id="wsat" class="System.Wsat.TWsatService" Password="my_secret_password" />
@@ -25,7 +25,7 @@
</com:TTextHighlighter>
</p>
- <h2>Usage</h2>
+ <h2 id="20010">Usage</h2>
<p class="block-content">
Then you are ready to go to: http://localhost/yoursite/index.php?wsat=TWsatLogin and doing so you should see
the following page:
@@ -36,7 +36,7 @@
is part of a basic security system to avoid undesirable persons to use this tool.
</p>
- <h2>Active Record classes generation</h2>
+ <h2 id="20011">Active Record classes generation</h2>
<p class="block-content">
In order to generate AR classes you need to go to: http://localhost/divermania/index.php?wsat=TWsatGenerateAR
by clicking the proper links in the welcome page. Then you should see the following page:
diff --git a/demos/quickstart/protected/pages/JuiControls/Home.page b/demos/quickstart/protected/pages/JuiControls/Home.page
index 7c0c065f..f997e573 100644
--- a/demos/quickstart/protected/pages/JuiControls/Home.page
+++ b/demos/quickstart/protected/pages/JuiControls/Home.page
@@ -1,9 +1,9 @@
<com:TContent ID="body" >
-<h1>Jui Controls (jQuery UI)</h1>
+<h1 id="224018">Jui Controls (jQuery UI)</h1>
<p class="block-content">
Jui controls are the PRADO port of the standard <a href="http://jqueryui.com/">jQuery UI</a> widgets. They can be used as standard <a href="?page=ActiveControls.Introduction">Active Controls</a>, but will automatically load the needed jQuery-UI javascript libraries.
</p>
-<h3>Options</h3>
+<h3 id="224021">Options</h3>
<p class="block-content">
The <tt>Options</tt> property of PRADO Jui controls is used to pass options to the underlying javascript object. Each subproperty set on <tt>Options</tt> will be translated to a javascript property added to the object. The complete list of options available for each widget is availble at jQuery-UI's API Documentation.
</p>
@@ -24,7 +24,7 @@ jQuery-UI's <a href="http://jqueryui.com/resizable/">Resizable</a> adds an handl
/&gt;
</com:TTextHighlighter>
-<h3>Events</h3>
+<h3 id="224022">Events</h3>
<p class="block-content">
jQuery-UI widgets offers a lot of events that PRADO can hook up and trasmit to the serverside using a <a href="?page=ActiveControls.Introduction">callback request</a>. Event available for PRADO Jui controls inherits their names from their jQuery-UI counterparts, prefixed with "On".
Jui controls doesn't make use of the AutoPostback property anymore, but only triggers a callback when an event handler is associated to the corresponding event.
@@ -42,7 +42,7 @@ jQuery's <a href="http://jqueryui.com/draggable/">Draggable</a> allows a target
/&gt;
</com:TTextHighlighter>
-<h2>PRADO Jui interactions controls</h2>
+<h2 id="224019">PRADO Jui interactions controls</h2>
<p class="block-content">
Jui interactions adds basic mouse-based interactions to elements like moving, resizing or sorting. PRADO Jui interactions controls applies there interactions to a <a href="?page=ActiveControls.ActivePanel">TActivePanel</a>
For informations of the specific options of each interaction, follow jQuery-UI Interaction <a href="http://api.jqueryui.com/category/interactions/">API Documentation</a> for the specific interaction.
@@ -74,7 +74,7 @@ For informations of the specific options of each interaction, follow jQuery-UI I
</li>
</ul>
-<h2>PRADO Jui widgets controls</h2>
+<h2 id="224020">PRADO Jui widgets controls</h2>
<ul id="u2" class="block-content">
<li>
<a href="?page=JuiControls.Widgets#TJuiProgressbar">TJuiProgressbar</a>
diff --git a/demos/quickstart/protected/pages/JuiControls/Interactions.page b/demos/quickstart/protected/pages/JuiControls/Interactions.page
index 2b48da68..b2be141f 100644
--- a/demos/quickstart/protected/pages/JuiControls/Interactions.page
+++ b/demos/quickstart/protected/pages/JuiControls/Interactions.page
@@ -1,12 +1,12 @@
<com:TContent ID="body">
-<h1>Jui interactions controls</h1>
+<h1 id="226023">Jui interactions controls</h1>
<p class="block-content">
Jui interactions adds basic mouse-based interactions to elements like moving, resizing or sorting. PRADO Jui interactions controls applies these interactions to a <a href="?page=ActiveControls.ActivePanel">TActivePanel</a>
For informations of the specific options of each interaction, follow jQuery-UI Interaction <a href="http://api.jqueryui.com/category/interactions/">API Documentation</a> for the specific interaction.
</p>
<a name="TJuiDraggable"></a>
-<h2>TJuiDraggable</h2>
+<h2 id="226024">TJuiDraggable</h2>
<com:DocLink ClassPath="System.Web.UI.JuiControls.TJuiDraggable" /> - <a href="http://api.jqueryui.com/draggable/">jQuery UI API</a>
<p class="block-content">
@@ -22,7 +22,7 @@ The panel can be moved using the mouse, and eventually dropped over a <a href="?
<a name="TJuiDroppable"></a>
-<h2>TJuiDroppable</h2>
+<h2 id="226025">TJuiDroppable</h2>
<com:DocLink ClassPath="System.Web.UI.JuiControls.TJuiDroppable" /> - <a href="http://api.jqueryui.com/droppable/">jQuery UI API</a>
<p class="block-content">
@@ -37,7 +37,7 @@ When a <a href="?page=JuiControls.Interactions#TJuiDroppable">TJuiDraggable</a>
<br/>
<a name="TJuiResizable"></a>
-<h2>TJuiResizable</h2>
+<h2 id="226026">TJuiResizable</h2>
<com:DocLink ClassPath="System.Web.UI.JuiControls.TJuiResizable" /> - <a href="http://api.jqueryui.com/resizable/">jQuery UI API</a>
<p class="block-content">
<tt>TJuiResizable</tt> is an extension to <a href="?page=ActiveControls.ActivePanel">TActivePanel</a> based on jQuery-UI's <a href="http://jqueryui.com/resizable/">Resizable</a> interaction.
@@ -52,7 +52,7 @@ A small handle is shown on the bottom right corner of the panel, that permits th
<a name="TJuiSelectable"></a>
-<h2>TJuiSelectable</h2>
+<h2 id="226027">TJuiSelectable</h2>
<com:DocLink ClassPath="System.Web.UI.JuiControls.TJuiSelectable" /> - <a href="http://api.jqueryui.com/selectable/">jQuery UI API</a>
<p class="block-content">
<tt>TJuiSelectable</tt> is an extension to <a href="?page=ActiveControls.ActivePanel">TActivePanel</a> based on jQuery-UI's <a href="http://jqueryui.com/selectable/">Selectable</a> interaction.
@@ -67,7 +67,7 @@ A small handle is shown on the bottom right corner of the panel, that permits th
<a name="TJuiSortable"></a>
-<h2>TJuiSortable</h2>
+<h2 id="226028">TJuiSortable</h2>
<com:DocLink ClassPath="System.Web.UI.JuiControls.TJuiSortable" /> - <a href="http://api.jqueryui.com/sortable/">jQuery UI API</a>
<p class="block-content">
<tt>TJuiSortable</tt> is an extension to <a href="?page=ActiveControls.ActivePanel">TActivePanel</a> based on jQuery-UI's <a href="http://jqueryui.com/sortable/">Sortable</a> interaction.
diff --git a/demos/quickstart/protected/pages/JuiControls/Widgets.page b/demos/quickstart/protected/pages/JuiControls/Widgets.page
index 63c6aa32..5bf8b083 100644
--- a/demos/quickstart/protected/pages/JuiControls/Widgets.page
+++ b/demos/quickstart/protected/pages/JuiControls/Widgets.page
@@ -1,5 +1,5 @@
<com:TContent ID="body">
-<h1>Jui widgets controls</h1>
+<h1 id="228029">Jui widgets controls</h1>
<p class="block-content">
Jui widgets are complex controls built on the foundations of jQuery effects and jQueryUI interactions.
PRADO Jui widgets controls can be divided in two groups:
@@ -11,7 +11,7 @@ For informations of the specific options of each widget, follow jQuery-UI Widget
</p>
<a name="TJuiProgressbar" />
-<h2>TJuiProgressbar</h2>
+<h2 id="228030">TJuiProgressbar</h2>
<com:DocLink ClassPath="System.Web.UI.JuiControls.TJuiProgressbar" /> - <a href="http://api.jqueryui.com/progressbar/">jQuery UI API</a>
<p class="block-content">
@@ -26,7 +26,7 @@ The panel takes the aspect of a progressbar ranging from a value of 0 to the val
<br/>
<a name="TJuiAutoComplete" />
-<h2>TJuiAutoComplete</h2>
+<h2 id="228031">TJuiAutoComplete</h2>
<com:DocLink ClassPath="System.Web.UI.JuiControls.TJuiAutoComplete" /> - <a href="http://api.jqueryui.com/autocomplete/">jQuery UI API</a>
<p class="block-content">
@@ -50,7 +50,7 @@ When a suggestion is selected the <tt>OnSuggestionSelected</tt> event is raised,
<a name="TJuiDialog" />
-<h2>TJuiDialog</h2>
+<h2 id="228032">TJuiDialog</h2>
<com:DocLink ClassPath="System.Web.UI.JuiControls.TJuiDialog" /> - <a href="http://api.jqueryui.com/dialog/">jQuery UI API</a>
<p class="block-content">
@@ -72,7 +72,7 @@ The buttons may contain a callback that will be fired when they are clicked.
<a name="TJuiDatePicker" />
-<h2>TJuiDatePicker</h2>
+<h2 id="228033">TJuiDatePicker</h2>
<com:DocLink ClassPath="System.Web.UI.JuiControls.TJuiDatePicker" /> - <a href="http://api.jqueryui.com/datepicker/">jQuery UI API</a>
<p class="block-content">
diff --git a/demos/site/.htaccess b/demos/site/.htaccess
new file mode 100644
index 00000000..cd03b45e
--- /dev/null
+++ b/demos/site/.htaccess
@@ -0,0 +1,8 @@
+<IfModule mod_rewrite.c>
+RewriteEngine on
+
+RewriteCond %{REQUEST_FILENAME} !-d
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteRule ^(.*)$ index.php/$1 [L]
+
+</IfModule> \ No newline at end of file
diff --git a/demos/site/assets/.gitignore b/demos/site/assets/.gitignore
new file mode 100755
index 00000000..d6b7ef32
--- /dev/null
+++ b/demos/site/assets/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/demos/site/index.php b/demos/site/index.php
new file mode 100755
index 00000000..0192f1cb
--- /dev/null
+++ b/demos/site/index.php
@@ -0,0 +1,17 @@
+<?php
+
+$basePath=dirname(__FILE__);
+$frameworkPath=$basePath.'/../../framework/prado.php';
+$assetsPath=$basePath.'/assets';
+$runtimePath=$basePath.'/protected/runtime';
+
+if(!is_writable($assetsPath))
+ die("Please make sure that the directory $assetsPath is writable by Web server process.");
+if(!is_writable($runtimePath))
+ die("Please make sure that the directory $runtimePath is writable by Web server process.");
+
+require_once($frameworkPath);
+
+$application=new TApplication;
+$application->run();
+
diff --git a/demos/site/protected/.htaccess b/demos/site/protected/.htaccess
new file mode 100755
index 00000000..8d2f2563
--- /dev/null
+++ b/demos/site/protected/.htaccess
@@ -0,0 +1 @@
+deny from all
diff --git a/demos/site/protected/Common/SimpleMenu.php b/demos/site/protected/Common/SimpleMenu.php
new file mode 100644
index 00000000..bcbc94cf
--- /dev/null
+++ b/demos/site/protected/Common/SimpleMenu.php
@@ -0,0 +1,86 @@
+<?php
+
+class SimpleMenu extends TControl
+{
+ public function addParsedObject($object)
+ {
+ if ($object instanceof SimpleMenuItem)
+ parent::addParsedObject($object);
+ }
+
+ public function render($writer)
+ {
+ $writer->renderBeginTag("ul");
+ parent::renderChildren($writer);
+ $writer->renderEndTag();
+ }
+
+}
+
+class SimpleMenuItem extends TControl
+{
+
+ public function getPath()
+ {
+ return $this->getControlState("Path", null);
+ }
+
+ public function setPath($value)
+ {
+ $this->setControlState("Path", TPropertyValue::ensureString($value));
+ }
+
+ public function getUrl()
+ {
+ return $this->getControlState("Url", null);
+ }
+
+ public function setUrl($value)
+ {
+ $this->setControlState("Url", TPropertyValue::ensureString($value));
+ }
+
+ public function getTarget()
+ {
+ return $this->getControlState("Target", null);
+ }
+
+ public function setTarget($value)
+ {
+ $this->setControlState("Target", TPropertyValue::ensureString($value));
+ }
+
+ public function getText()
+ {
+ return $this->getControlState("Text", $this->getID());
+ }
+
+ public function setText($value) {
+ $this->setControlState("Text", TPropertyValue::ensureString($value));
+ }
+
+ public function render($writer)
+ {
+ $writer->renderBeginTag("li");
+
+ if(null !== $path = $this->getPath())
+ {
+ $writer->addAttribute('href', $this->Service->constructUrl($path));
+
+ if($path == $this->Page->getPagePath())
+ $writer->addAttribute('class', 'active');
+ } elseif(null !== $url = $this->getUrl()) {
+ $writer->addAttribute('href', $url);
+ }
+
+ if($this->getTarget() !== null)
+ $writer->addAttribute('target', $this->getTarget());
+
+ $writer->renderBeginTag("a");
+
+ $writer->write(THttpUtility::htmlEncode($this->getText()));
+
+ $writer->renderEndTag();
+ $writer->renderEndTag();
+ }
+}
diff --git a/demos/site/protected/Layouts/MainLayout.php b/demos/site/protected/Layouts/MainLayout.php
new file mode 100644
index 00000000..15302dfc
--- /dev/null
+++ b/demos/site/protected/Layouts/MainLayout.php
@@ -0,0 +1,5 @@
+<?php
+
+class MainLayout extends TTemplateControl
+{
+}
diff --git a/demos/site/protected/Layouts/MainLayout.tpl b/demos/site/protected/Layouts/MainLayout.tpl
new file mode 100644
index 00000000..85a7b159
--- /dev/null
+++ b/demos/site/protected/Layouts/MainLayout.tpl
@@ -0,0 +1,56 @@
+<html>
+<com:THead Title="PRADO PHP Framework" >
+ <com:TMetaTag HttpEquiv="Content-Language" Content="en" />
+ <com:TMetaTag HttpEquiv="Content-Type" Content="text/html; charset=utf-8" />
+ <com:TMetaTag Name="Keywords" Content="PHP framework, PRADO" />
+ <com:TMetaTag Name="Description" Content="PRADO is a component-based and event-driven framework for Web application development in PHP 5." />
+ <com:TMetaTag Name="Author" Content="Qiang Xue, Fabio Bas" />
+ <com:TMetaTag Name="Subject" Content="PHP framework, Web programming" />
+ <com:TMetaTag Name="Language" Content="en" />
+ <link rel="Shortcut Icon" href="<%=$this->Page->Theme->BaseUrl%>/favicon.ico">
+</com:THead>
+<body>
+<com:TForm>
+<div id="page">
+ <div id="header">
+ <div id="logo">
+ <com:THyperLink
+ NavigateUrl="<%= $this->Service->constructUrl($this->Service->DefaultPage) %>"
+ Text="PRADO Component Framework for PHP 5"
+ ImageUrl="<%=$this->Page->Theme->BaseUrl%>/imgs/pradoheader.gif"
+ />
+ </div>
+ <div id="mainmenu">
+ <com:SimpleMenu ID="menu">
+ <com:SimpleMenuItem Path="Home" Text="Home" />
+ <com:SimpleMenuItem Path="About" Text="About" />
+ <!---<com:SimpleMenuItem Path="Testimonials" Text="Testimonials" /> --->
+ <com:SimpleMenuItem Path="Demos" Text="Demos" />
+ <com:SimpleMenuItem Path="Download" Text="Download" />
+ <com:SimpleMenuItem Path="Documentation" Text="Documentation" />
+ <!--- <com:SimpleMenuItem Path="Forum" Text="Forum" /> --->
+ <com:SimpleMenuItem Url="http://github.com/pradosoft/prado" Text="Development" Target="_blank"/>
+ <!--- --->
+ </com:SimpleMenu>
+ </div>
+ </div>
+ <com:TContentPlaceHolder ID="Main" />
+ <div style="clear: both;"></div>
+ <div id="footer">
+ <com:THyperLink
+ NavigateUrl="<%= $this->Service->constructUrl('Tos') %>"
+ Text="Terms of Service"
+ /> |
+ <com:THyperLink
+ NavigateUrl="<%= $this->Service->constructUrl('License') %>"
+ Text="License"
+ />
+ <br>
+ Copyright © 2004-<%=date('Y')%> by the PRADO Group.<br>
+ <br>
+ <%= Prado::poweredByPrado(1); %>
+ </div>
+</div>
+</com:TForm>
+</body>
+</html> \ No newline at end of file
diff --git a/demos/site/protected/Pages/About.page b/demos/site/protected/Pages/About.page
new file mode 100644
index 00000000..62d3af2d
--- /dev/null
+++ b/demos/site/protected/Pages/About.page
@@ -0,0 +1,55 @@
+<com:TContent ID="Main">
+
+<div id="main">
+<h2>The PRADO Group</h2>
+<p>
+The PRADO group is a team of PRADO enthusiasts who develop and promote the PRADO framework and the related projects.
+</p>
+<h3>Team Members</h3>
+<ul>
+ <li>Fabio Bas - development, testing</li>
+ <li>Ciro Mattia Gonano - github/packagist maintainer</li>
+ <li>Daniel Sampedro Bello - wsat development</li>
+ <li>David Otto - development, testing</li>
+ <li>Jens Klaer - development, testing</li>
+</ul>
+<p>The following Team Members are currently inactive.</p>
+<ul>
+ <li>Qiang Xue - founder of PRADO framework, core development</li>
+ <li>Xiang Wei Zhuo - core development (javascripts, active controls, DB controls, tests)</li>
+ <li>Jason Ragsdale - site and forum administration</li>
+ <li>Knut Urdalen - test, marketing</li>
+ <li>Eirik Hoem - core development</li>
+ <li>Yves Berkholz - core development</li>
+ <li>Michael Hartl - component development, testing</li>
+ <li>Carl G. Mathisen - design and document comment system</li>
+ <li>Christophe Boulain - component development, testing</li>
+ <li>Robin J. Rogge - site and forum adminitration, core development</li>
+</ul>
+<h4>Past Team Members</h4>
+<p>
+Alex Flint, Brian Luft, John Teague, Todd Patrick, Pim van der Zwet, Tim Evans, Alban Hanry, Marcus Nyeholt
+</p>
+
+<h3>History of PRADO</h3>
+<p>
+The very original inspiration of PRADO came from Apache Tapestry. During the design and implementation, Qiang Xue borrowed many ideas from Borland Delphi and Microsoft ASP.NET. The first version of PRADO came out in June 2004 and was written in PHP 4. Driven by the Zend PHP 5 coding contest, Qiang rewrote PRADO in PHP 5, which proved to be a wise move, thanks to the new object model provided by PHP 5. PRADO won the grand prize in the Zend contest, earning high votes both from the public and from the judges' panel.
+</p>
+<p>
+In August 2004, PRADO was hosted on SourceForge as an open source project. Soon after, the project site <a href="http://www.xisc.com/">xisc.com</a> was announced to public. With the fantastic support of PRADO developer team and PRADO users, PRADO evolved to version 2.0 in mid 2005. In this version, Wei Zhuo contributed to PRADO with the excellent I18 and L10N support.
+</p>
+<p>
+In May 2005, developers decided to completely rewrite the PRADO framework to resolve a few fundamental issues found in version 2.0 and to catch up with some cool features available in Microsoft ASP.NET 2.0. After nearly a year's hard work with over 50,000 lines of new code, version 3.0 was finally made available in April 2006.
+</p>
+<p>
+In October 2008, the original development team released a new framework called <a href="http://www.yiiframework.com/">Yii</a>. Inheriting most of the PRADO code, Yii left the pages/events concept, focusing on a pure MVC design pattern. Since 2009 a lot of people contributed to PRADO fixing issues, developing new features or backporting them from Yii.
+</p>
+<p>
+To promote a model of community-driven development, the project repositories were moved first on <a href="http://code.google.com/p/prado3/">Google Code</a> and then, in September 2013, on <a href="http://github.com/pradosoft/prado">GitHub</a>.
+</p>
+<p>
+Starting from version 3.0, significant efforts are allocated to ensure the quality and stability of PRADO. If we say PRADO v2.x and v1.x are proof-of-concept work, we can say PRADO 3.x has grown up to a project that is suitable for serious business application development.
+</p>
+
+</div>
+</com:TContent> \ No newline at end of file
diff --git a/demos/site/protected/Pages/Demos.page b/demos/site/protected/Pages/Demos.page
new file mode 100644
index 00000000..dbc7635d
--- /dev/null
+++ b/demos/site/protected/Pages/Demos.page
@@ -0,0 +1,31 @@
+<com:TContent ID="Main">
+
+<div id="main">
+
+<h2>Online Demos</h2>
+<p>
+The following demos are developed using the PRADO framework. They are also available under the <tt>demos</tt> directory in the PRADO release.
+</p>
+<ul class="demo-list">
+ <li><a href="<%$ DemoUrl %>/helloworld/">Hello World</a>: This is perhaps the smallest interactive PRADO application that you can build. It may serve as a good start for building your own applications based on PRADO.</li>
+ <li><a href="<%$ DemoUrl %>/composer/">Component Composer</a>: This demo is an practical application that can be used to help you quickly write up a PRADO component.</li>
+ <li><a href="<%$ DemoUrl %>/personal/">Personal Website</a>: This demo can be served as the starting point to develop a multi-page Web application. It also shows how to support user login in a PRADO application.</li>
+ <li><a href="<%$ DemoUrl %>/quickstart/"><b>Quickstart tutorial demo</b></a>: This demo is meant to help you learn PRADO. It contains tens of sub-demos showing various Web controls included in the PRADO release.
+<ul>
+<li><a href="<%$ DemoUrl %>/quickstart/?page=Controls.Standard">Standard control demos</a> (nearly 40 demos) </li>
+<li><a href="<%$ DemoUrl %>/quickstart/?page=Controls.Validation">Validation control demos</a> </li>
+<li><a href="<%$ DemoUrl %>/quickstart/?page=Controls.List">List control demos</a> (dropdown list, listbox, etc.) </li>
+<li><a href="<%$ DemoUrl %>/quickstart/?page=Controls.Data">Repeater, datalist, datagrid demos</a> </li>
+<li><a href="<%$ DemoUrl %>/quickstart/?page=ActiveControls.Home">Active control demos</a> (AJAX) </li>
+</ul>
+ </li>
+<!--
+ <li><a href="<%$ DemoUrl %>/blog/"><b>PRADO Blog</b></a>: This is a complete weblog system with user management, post management and configuration management.</li>
+-->
+ <li><a href="<%$ DemoUrl %>/currency-converter/">Currency Converter</a>: A small <a href="<%$ DemoUrl %>/quickstart/?page=Tutorial.CurrencyConverter">tutorial</a> example demonstrating the basic use of validator and AJAX controls.</li>
+ <li><a href="<%$ DemoUrl %>/soap/">SOAP Service</a>: This demo is a quick setup of a SOAP server and client.</li>
+ <li><a href="<%$ DemoUrl %>/chat/">AJAX Chat</a>: A easy to build web chat application using AJAX controls and Active Records for database access (see <a href="<%$ DemoUrl %>/quickstart/?page=Tutorial.AjaxChat">tutorial</a>).</li>
+ <li><a href="<%$ DemoUrl %>/time-tracker/"><b>Time Tracker</b></a>: A complete personal project time tracker application using SQLMap for data access.</li>
+
+</div>
+</com:TContent> \ No newline at end of file
diff --git a/demos/site/protected/Pages/Documentation.page b/demos/site/protected/Pages/Documentation.page
new file mode 100644
index 00000000..0a4dd73f
--- /dev/null
+++ b/demos/site/protected/Pages/Documentation.page
@@ -0,0 +1,42 @@
+<com:TContent ID="Main">
+
+<div id="main">
+
+<!---
+<div style="float:right;">
+<b>Class Finder</b> <input name="ctl0$main$ctl0$classEdit" type="text" id="ctl0_main_ctl0_classEdit" style="width:20em;" /><div id="ctl0_main_ctl0_classEdit_result" class="autocomplete"></div>
+</div>
+--->
+<div id="navbar">
+<ul>
+<li><a href="<%$ DemoUrl %>/quickstart/">QuickStart</a></li>
+<li><a href="<%$ DocsUrl %>/manual/">API Manual</a></li>
+<!--- <li><a href="<%$ DocsUrl %>/tutorials/" class="active">Tutorials</a></li> --->
+<!--- <li><a href="<%$ DocsUrl %>/classdoc/">Class Docs</a></li> --->
+</ul>
+</div>
+
+<h2>API Manual</h2>
+
+The <a href="<%$ DocsUrl %>/manual/">API Manual</a> contains the documentation for all the classes declared in PRADO.
+
+<br/>
+<br/>
+<h2>Tutorials</h2>
+
+<ul>
+ <li><a href="<%$ DemoUrl %>/quickstart/">The QuickStart Tutorial</a> - This tutorial is a definitive guidance showing every aspect of PRADO. It is written in PRADO and contains many demos to show the usage of various PRADO controls. The tutorial is also available as a <a href="/web/20151005191144/http://www.pradosoft.com/docs/quickstart.pdf">PDF file</a>.</li>
+ <li><a href="<%$ DemoUrl %>/blog-tutorial/">The PRADO Blog Tutorial</a> - This tutorial shows how to use PRADO to build a complete Web application. Prior PRADO knowledge is not required.</li>
+ <li><a href="<%$ DemoUrl %>/sqlmap/">The SQLMap Tutorial</a> - This tutorial is a definitive guidance on how to use SQLMap (available since v3.1.0).</li>
+</ul>
+<!---
+<h3>Screencasts</h3>
+<ul>
+ <li><a href="http://www.pradosoft.com/docs/movies/HelloWorld.mov">Hello World</a> (11.8MB, QuickTime): a short video on how to create the "Hello World" demo using PHP and PRADO 3.x.</li>
+ <li><a href="http://www.pradosoft.com/docs/movies/blog/videos.html" target="_blank">The PRADO Blog Tutorial</a> (Flash plugin required): this is the complete PRADO blog tutorial in Flash format. Split over 6 videos to a sum of about 60 mins in total. Kudos to Wei Zhuo!</li>
+</ul>
+--->
+
+</div>
+
+</com:TContent> \ No newline at end of file
diff --git a/demos/site/protected/Pages/Download.page b/demos/site/protected/Pages/Download.page
new file mode 100644
index 00000000..bdc21221
--- /dev/null
+++ b/demos/site/protected/Pages/Download.page
@@ -0,0 +1,116 @@
+<com:TContent ID="Main">
+
+<div id="main">
+
+<h1>Download</h1>
+<p>PRADO is an open source project hosted on <a href="http://github.com/pradosoft/prado">GitHub</a>. It is released under the terms of
+<com:THyperLink NavigateUrl="<%= $this->Service->constructUrl('License')%>" Text="the BSD License" />.</p>
+<p>The latest stable version of PRADO is <b><span id="lastVersion"><%= Prado::getVersion() %></span></b><span id="lastVersionDate"></span>.</p>
+<div style="text-align:center"><a id="downloadLink" style="font-size:150%" href="https://github.com/pradosoft/prado/releases/latest">Download</a></div>
+
+<com:TClientScript PradoScripts="jquery" />
+<com:TClientScript>
+
+$(document).ready(function () {
+ $.getJSON("https://api.github.com/repos/pradosoft/prado/releases").done(function (json) {
+ var release = json[0];
+
+ var releaseVer = release.tag_name;
+ var releaseDate = new Date(release.published_at);
+ var downloadURL = release.assets[0].browser_download_url;
+
+ var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
+ var day = releaseDate.getDate();
+ var monthIndex = releaseDate.getMonth();
+ var year = releaseDate.getFullYear();
+
+ $("#lastVersion").text(releaseVer);
+ $("#lastVersionDate").text(' (' + day + ' ' + monthNames[monthIndex] + ' ' + year + ')');
+ $("#downloadLink").attr("href", downloadURL);
+ });
+
+ $.get("https://raw.githubusercontent.com/pradosoft/prado/master/HISTORY", function(data) {
+ $("#changeLog").text(data);
+ });
+});
+</com:TClientScript>
+
+<br/>
+<h2>Latest changelog entries</h2>
+<pre id="changeLog">loading...</pre>
+
+<br/>
+<h2>Previous PRADO v3.x releases</h2>
+
+<table width="100%" cellspacing="1" cellpadding="1" class="download">
+<tr>
+ <th nowrap="nowrap">Version</th>
+ <th nowrap="nowrap">Date </th>
+ <th nowrap="nowrap">Files</th>
+</tr>
+ <tr><td>3.2.4</td><td>Aug 26, 2014</td><td><a href="https://github.com/pradosoft/prado/releases/download/3.2.4/prado-3.2.4.re2e58b8.zip">Source code and documentation</a></td></tr>
+ <tr><td>3.2.3</td><td>Nov 26, 2013</td><td><a href="https://github.com/pradosoft/prado/releases/download/3.2.3/prado-3.2.3.r2b11341.zip">Source code and documentation</a></td></tr>
+ <tr><td>3.2.2</td><td>July 20, 2013</td><td><a href="http://prado3.googlecode.com/files/prado-3.2.2.r3297.zip">Source code</a>, <a href="http://prado3.googlecode.com/files/prado-docs-3.2.2.r3297.zip">documentation</a></td></tr>
+ <tr><td>3.2.1</td><td>January 19, 2013</td><td><a href="http://prado3.googlecode.com/files/prado-3.2.1.r3258.zip">Source code</a>, <a href="http://prado3.googlecode.com/files/prado-docs-3.2.1.r3258.zip">documentation</a></td></tr>
+ <tr><td>3.2.0</td><td>June 25, 2012</td><td><a href="http://prado3.googlecode.com/files/prado-3.2.0.r3169.zip">Source code</a>, <a href="http://prado3.googlecode.com/files/prado-docs-3.2.0.r3169.zip">documentation</a></td></tr>
+ <tr><td>3.1.10</td><td>July 27, 2011</td><td><a href="http://prado3.googlecode.com/files/prado-3.1.10.r3017.zip">Source code</a>, <a href="http://prado3.googlecode.com/files/prado-docs-3.1.10.r3017.zip">documentation</a></td></tr>
+ <tr><td>3.1.9</td><td>June 3, 2011</td><td><a href="http://prado3.googlecode.com/files/prado-3.1.9.r2973.zip">Source code</a>, <a href="http://prado3.googlecode.com/files/prado-docs-3.1.9.r2973.zip">documentation</a></td></tr>
+ <tr><td>3.1.8</td><td>May 29, 2011</td><td><a href="http://prado3.googlecode.com/files/prado-3.1.8.r2934.zip">Source code</a>, <a href="http://prado3.googlecode.com/files/prado-docs-3.1.8.r2934.zip">documentation</a></td></tr>
+ <tr><td>3.1.7</td><td>February 22, 2010</td><td><a href="http://prado3.googlecode.com/files/prado-3.1.7.r2783.zip">Source code</a>, <a href="http://prado3.googlecode.com/files/prado-docs-3.1.7.r2783.zip">documentation</a></td></tr>
+ <tr><td>3.1.6</td><td>July 22, 2009</td><td><a href="http://prado3.googlecode.com/files/prado-3.1.6.r2699.zip">Source code</a>, <a href="http://prado3.googlecode.com/files/prado-docs-3.1.6-r2699.zip">documentation</a></td></tr>
+ <tr><td>3.1.5</td><td>May 24, 2009</td><td><a href="http://prado3.googlecode.com/files/prado-3.1.5.r2662.zip">Source code</a>, <a href="http://prado3.googlecode.com/files/prado-docs-3.1.5.r2662.zip">documentation</a></td></tr>
+ <tr><td>3.1.4</td><td>January 11, 2009</td><td><a href="http://prado3.googlecode.com/files/prado-3.1.4.r2603.zip">Source code</a>, <a href="http://prado3.googlecode.com/files/prado-docs-3.1.4.r2603.zip">documentation</a></td></tr>
+ <tr><td>3.1.3</td><td>November 1, 2008</td><td><a href="http://prado3.googlecode.com/files/prado-3.1.3-src.zip">Source code</a>, <a href="http://prado3.googlecode.com/files/prado-3.1.3-docs.zip">documentation</a></td></tr>
+ <tr><td>3.1.2</td><td>April 21, 2008</td><td><a href="http://prdownloads.sourceforge.net/prado/prado-3.1.2.r2448.zip?download">Source code</a></td></tr>
+ <tr><td>3.1.1</td><td>October 1, 2007</td><td><a href="http://prdownloads.sourceforge.net/prado/prado-3.1.1.r2290.zip?download">Source code</a></td></tr>
+ <tr><td>3.1.0</td><td>July 2, 2007</td><td><a href="http://prdownloads.sourceforge.net/prado/prado-3.1.0.r2045.zip?download">Source code</a></td></tr>
+ <tr><td>3.0.7</td><td>April 2, 2007</td><td><a href="http://prdownloads.sourceforge.net/prado/prado-3.0.7.r1825.zip?download">Source code</a></td></tr>
+ <tr><td>3.0.6</td><td>December 4, 2006</td><td><a href="http://prdownloads.sourceforge.net/prado/prado-3.0.6.r1561.zip?download">Source code</a></td></tr>
+ <tr><td>3.0.5</td><td>October 23, 2006</td><td><a href="http://prdownloads.sourceforge.net/prado/prado-3.0.5.r1478.zip?download">Source code</a></td></tr>
+ <tr><td>3.0.4</td><td>September 4, 2006</td><td><a href="http://prdownloads.sourceforge.net/prado/prado-3.0.4.r1389.zip?download">Source code</a></td></tr>
+ <tr><td>3.0.3</td><td>August 6, 2006</td><td><a href="http://prdownloads.sourceforge.net/prado/prado-3.0.3.r1331.zip?download">Source code</a></td></tr>
+ <tr><td>3.0.2</td><td>July 2, 2006</td><td><a href="http://prdownloads.sourceforge.net/prado/prado-3.0.2.r1226.zip?download">Source code</a></td></tr>
+ <tr><td>3.0.1</td><td>June 4, 2006</td><td><a href="http://prdownloads.sourceforge.net/prado/prado-3.0.1.zip?download">Source code</a></td></tr>
+ <tr><td>3.0.0</td><td>May 1, 2006</td><td><a href="http://prdownloads.sourceforge.net/prado/prado-3.0.0.zip?download">Source code</a></td></tr>
+</table>
+<br/>
+<br/>
+<h2>PRADO Tools</h2>
+<table width="100%" cellspacing="1" cellpadding="5" class="download">
+ <tr>
+ <th nowrap="nowrap">File</th>
+ <th nowrap="nowrap">Description</th>
+ <th nowrap="nowrap">Release date</th>
+ </tr>
+ <tr>
+ <td><a href="http://prado3.googlecode.com/files/prado-dreamweaver-r2764.zip">Dreamweaver Extension</a></td>
+ <td>PRADO Dreamweaver Extension (r2764)</td>
+ <td nowrap="nowrap">February 14, 2010</td>
+ </tr>
+ <tr>
+ <td><a href="http://prado3.googlecode.com/files/prado-intype-bundle-r2854.zip">InType Bundle</a></td>
+ <td>PRADO InType Bundle (r2854)</td>
+ <td nowrap="nowrap">June 23, 2010</td>
+ </tr>
+ <tr>
+ <td><a href="http://prado3.googlecode.com/files/prado-notepadplus-r2793.zip">Notepad++ Plugin</a></td>
+ <td>PRADO Notepad++ Plugin (r2793)</td>
+ <td nowrap="nowrap">April 6, 2010</td>
+ </tr>
+ <tr>
+ <td><a href="http://prado3.googlecode.com/files/prado-textmatebundle-r3193.zip">Textmate Bundle</a></td>
+ <td>PRADO TextMate Bundle, suitable also for Sublime Text 2 (r3193)</td>
+ <td nowrap="nowrap">July 24, 2012</td>
+ </tr>
+</table>
+<br/>
+<br/>
+<h2>Git Access</h2>
+<p>You can obtain the latest development version of PRADO from our <a href="https://github.com/pradosoft/prado">Git repository</a>.</p>
+<blockquote><b>WARNING:</b> Unreleased Source code in Git may contain known bugs and are subject to changes without prior notice.</blockquote>
+<p>The Source code repository can be accessed anonymously using the following command,</p>
+<pre class="instructions">git clone https://github.com/pradosoft/prado.git</pre>
+
+</div>
+
+</com:TContent> \ No newline at end of file
diff --git a/demos/site/protected/Pages/Home.page b/demos/site/protected/Pages/Home.page
new file mode 100755
index 00000000..b9cc49b7
--- /dev/null
+++ b/demos/site/protected/Pages/Home.page
@@ -0,0 +1,37 @@
+<com:TContent ID="Main">
+
+<div class="intro">
+ <div class="whyprado">
+ <ul class="list">
+ <li class="one"><a href="#features/">Why PRADO</a></li>
+ <li class="two"><a href="#demos/">Try PRADO</a></li>
+ <li class="three"><a href="#documentation/">Learn PRADO</a></li>
+ </ul>
+ </div>
+</div>
+
+<div class="statements">
+ <div class="whatis">
+ <h3>What is PRADO?</h3>
+ <p>PRADO<sup>TM</sup> is a component-based and event-driven programming framework for developing Web applications in PHP 5. PRADO stands for <b>P</b>HP <b>R</b>apid <b>A</b>pplication <b>D</b>evelopment <b>O</b>bject-oriented.</p>
+ </div>
+ <div class="whatreq">
+ <h3>What does PRADO require?</h3>
+ <p>The sole requirement to run PRADO-based applications is a Web server supporting PHP 5.3.0 or higher. <a href="#license/">PRADO is free</a>. You can use it to develop either open source or commercial applications.</p>
+ </div>
+ <div class="cani">
+ <h3>Quick facts about PRADO</h3>
+ <p>
+ <b>First release:</b> August 2004<br>
+ <b>License:</b> <a href="#license/">revised BSD</a><br>
+ <b>Lines of core code:</b> &gt; 150,000 lines<br>
+ <b>Number of classes:</b> &gt; 700<br>
+ <b>Downloads:</b> &gt; 430,000 15/09/2013<br>
+ </p>
+ </div>
+</div>
+
+<div id="main">
+</div>
+
+</com:TContent> \ No newline at end of file
diff --git a/demos/site/protected/Pages/License.page b/demos/site/protected/Pages/License.page
new file mode 100644
index 00000000..9636acf9
--- /dev/null
+++ b/demos/site/protected/Pages/License.page
@@ -0,0 +1,28 @@
+<com:TContent ID="Main">
+
+<div id="main">
+
+<h2>License of PRADO</h2>
+
+<p>
+The PRADO framework and the included demos are free software. They are released under the terms of the following BSD License.
+</p>
+<p>
+Copyright 2004-<%= date('Y') %> by The PRADO Group (http://www.pradosoft.com)<br/>
+All rights reserved.
+</p>
+<p>
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+</p>
+<ul>
+<li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. </li>
+<li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</li>
+<li>Neither the name of the PRADO Group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.</li>
+</ul>
+<p>
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</p>
+
+</div>
+
+</com:TContent> \ No newline at end of file
diff --git a/demos/site/protected/Pages/Tos.page b/demos/site/protected/Pages/Tos.page
new file mode 100644
index 00000000..18f4750c
--- /dev/null
+++ b/demos/site/protected/Pages/Tos.page
@@ -0,0 +1,42 @@
+<com:TContent ID="Main">
+
+<div id="main">
+
+<h2>Terms of Service</h2>
+
+<p>
+This web site is owned and operated by Prado Software Group, (PradoSoft or we). We have created this page to share with you our privacy and legal policies regarding to your personal information and the contents on this site.
+</p>
+
+<h3>Privacy Policy</h3>
+<p>
+We do not collect personal information about you unless you voluntarily provide it to us or authorize us to collect it. We consider the following to be personal information: your name, email address, phone number, date of birth, job, personal interests, your e-mail address. We treat personal information confidentially.
+</p>
+<p>
+We do collect and track certain non-personally information, including but not limited to, user IP numbers and browser type, access times, domain names, usage habits and other information which does not specifically identify any individual.
+</p>
+<p>
+We may use cookies to customize your use of the web site and for other purposes to improve your use of the service, and may also use web beacons, web bugs, action tags and third party cookies. You may stop or restrict the placement of cookies on your computer or flush them from your browser by adjusting your web browser preferences, in which case you may still use our Service, but it may interfere with some of its functionality. We do not use cookies to automatically retrieve personal information from your computer without your knowledge.
+</p>
+
+<h3>Legal Disclaimer</h3>
+<p>
+All the information and contents posted on this web site are the property of PradoSoft, and are protected by U.S. and foreign copyright laws. By accessing this web site, you agree to the following terms and conditions. You shall not use this web site if you do not agree.
+</p>
+<ol>
+<li>This web site and its contents may NOT be copied or distributed in any manner without the prior written consent of PradoSoft.</li>
+<li>PradoSoft MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THIS WEB SITE, ITS CONTENTS OR THE MANUSCRIPT, WHICH ARE PROVIDED FOR USE "AS IS" AND IS WITHOUT WARRANTY OF ANY KIND.</li>
+<li>Portions of this web site may publish readers comments and opinion. PradoSoft does not assume or have any responsibility or any liability for the readers comments or opinions.</li>
+</ol>
+
+<h3>Change of Policies</h3>
+<p>
+The above policies may change from time to time. PradoSoft will post those changes on this page.
+</p>
+<p>
+This page was last updated on May 2, 2006.
+</p>
+
+</div>
+
+</com:TContent> \ No newline at end of file
diff --git a/demos/site/protected/application.xml b/demos/site/protected/application.xml
new file mode 100644
index 00000000..b937e82b
--- /dev/null
+++ b/demos/site/protected/application.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<application id="pradosite" mode="Debug">
+ <paths>
+ <using namespace="Application.Common.*" />
+ <using namespace="System.Web.UI.ActiveControls.*" />
+ </paths>
+ <modules>
+ <module id="parameter" class="System.Util.TParameterModule">
+ <!-- the site lives in the demos directory -->
+ <parameter id="DemoUrl" value=".." />
+ <parameter id="DocsUrl" value="../docs" />
+ </module>
+ <module id="request" class="THttpRequest" UrlFormat="HiddenPath" UrlManager="friendly-url" />
+ <module id="friendly-url" class="System.Web.TUrlMapping" EnableCustomUrl="true">
+ <url ServiceParameter="Home" pattern="/" />
+ <url ServiceParameter="About" pattern="about" />
+ <url ServiceParameter="Demos" pattern="demos" />
+ <url ServiceParameter="Download" pattern="download" />
+ <url ServiceParameter="Documentation" pattern="documentation" />
+ <url ServiceParameter="Tos" pattern="tos" />
+ <url ServiceParameter="License" pattern="license" />
+ <!-- <url ServiceParameter="Forum" pattern="/forum" /> -->
+ </module>
+
+ <!--
+ <module id="log" class="System.Util.TLogRouter">
+ <route class="TFileLogRoute" Categories="OffInfApplication" />
+ </module>
+ <module id="globalization" class="System.I18N.TGlobalization" charset="UTF-8"/>
+
+ <module id="data" class="Application.Common.OffInfDataModule" />
+ <module id="users" class="Application.Common.OffInfUserManager" />
+ -->
+ </modules>
+ <services>
+ <service id="page" class="TPageService" BasePath="Application.Pages" DefaultPage="Home">
+ <pages MasterClass="Application.Layouts.MainLayout" Theme="Prado"/>
+ </service>
+ </services>
+</application> \ No newline at end of file
diff --git a/demos/site/protected/runtime/.gitignore b/demos/site/protected/runtime/.gitignore
new file mode 100755
index 00000000..d6b7ef32
--- /dev/null
+++ b/demos/site/protected/runtime/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/demos/site/themes/Prado/favicon.ico b/demos/site/themes/Prado/favicon.ico
new file mode 100644
index 00000000..28d63172
--- /dev/null
+++ b/demos/site/themes/Prado/favicon.ico
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/bg.gif b/demos/site/themes/Prado/imgs/bg.gif
new file mode 100644
index 00000000..d4ce965e
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/bg.gif
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/bigmantis.jpg b/demos/site/themes/Prado/imgs/bigmantis.jpg
new file mode 100644
index 00000000..7520aab4
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/bigmantis.jpg
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/bigmantis.jpg.1 b/demos/site/themes/Prado/imgs/bigmantis.jpg.1
new file mode 100644
index 00000000..7520aab4
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/bigmantis.jpg.1
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/bottomgradient.gif b/demos/site/themes/Prado/imgs/bottomgradient.gif
new file mode 100644
index 00000000..4309dc30
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/bottomgradient.gif
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/bullet_one.gif b/demos/site/themes/Prado/imgs/bullet_one.gif
new file mode 100644
index 00000000..8d42c689
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/bullet_one.gif
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/bullet_three.gif b/demos/site/themes/Prado/imgs/bullet_three.gif
new file mode 100644
index 00000000..099522c2
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/bullet_three.gif
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/bullet_two.gif b/demos/site/themes/Prado/imgs/bullet_two.gif
new file mode 100644
index 00000000..cd8001a8
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/bullet_two.gif
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/mainmenu_active.gif b/demos/site/themes/Prado/imgs/mainmenu_active.gif
new file mode 100644
index 00000000..47974274
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/mainmenu_active.gif
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/mainmenu_hover.gif b/demos/site/themes/Prado/imgs/mainmenu_hover.gif
new file mode 100644
index 00000000..26355b3c
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/mainmenu_hover.gif
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/pradodownload.gif b/demos/site/themes/Prado/imgs/pradodownload.gif
new file mode 100644
index 00000000..4b063dbb
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/pradodownload.gif
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/pradoheader.gif b/demos/site/themes/Prado/imgs/pradoheader.gif
new file mode 100755
index 00000000..40ca5d29
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/pradoheader.gif
Binary files differ
diff --git a/demos/site/themes/Prado/imgs/statementsbg.gif b/demos/site/themes/Prado/imgs/statementsbg.gif
new file mode 100644
index 00000000..85836a2e
--- /dev/null
+++ b/demos/site/themes/Prado/imgs/statementsbg.gif
Binary files differ
diff --git a/demos/site/themes/Prado/style.css b/demos/site/themes/Prado/style.css
new file mode 100755
index 00000000..798451c0
--- /dev/null
+++ b/demos/site/themes/Prado/style.css
@@ -0,0 +1,765 @@
+
+/**
+ * PradoSoft profile by Carl G. Mathisen and Stefan A. Petrov
+ * http://decart.no
+ */
+
+body
+{
+ background-color: #ECEDE5;
+ background-image: url('imgs/bg.gif');
+ background-repeat: repeat-x;
+ background-position: top left;
+ margin: 0px;
+ padding: 0px;
+ text-align: center;
+}
+
+body, div, span, p, input
+{
+ font-family: Verdana, sans-serif, Arial;
+ font-size: 10pt;
+ color: #333333;
+}
+
+h1, h2, h3, h4
+{
+ font-family: Verdana, Helvetica, Arial, Lucida Grande, Trebuchet MS;
+ padding: 0px;
+ margin: 0px;
+ margin-bottom: 10px;
+ color: #821B18;
+ font-weight: normal;
+}
+
+h2
+{
+ font-size: 18px;
+}
+
+h3
+{
+ font-size: 16px;
+}
+
+div
+{
+ text-align: left;
+}
+
+.instructions
+{
+ background-color: #EEEEEE;
+ padding: 5px;
+}
+
+img
+{
+ border: none;
+}
+
+a
+{
+ color: #CD2C27;
+ text-decoration: none;
+}
+
+a:hover
+{
+ color: #821B18;
+ text-decoration: underline;
+}
+
+#page
+{
+ margin: 0 auto;
+ padding: 0;
+ width: 841px;
+ position: relative;
+}
+
+#header
+{
+ position: relative;
+ height: 98px;
+}
+
+#logo
+{
+ height: 99px;
+}
+
+#mainmenu
+{
+ position: absolute;
+ top: 69px;
+}
+
+#mainmenu ul
+{
+ margin-left: 0;
+ padding-left: 0;
+ display: inline;
+}
+
+#mainmenu ul li
+{
+ margin-left: 0px;
+ list-style: none;
+ display: inline;
+}
+
+#mainmenu ul li a
+{
+ display: block;
+ float: left;
+ font-size: 14px;
+ font-weight: bold;
+ padding-left: 7px;
+ padding-right: 7px;
+ padding-top: 5px;
+ color: #FFFFCC;
+ text-decoration: none;
+ height: 29px;
+}
+
+#mainmenu ul li a:hover
+{
+ background-image: url('imgs/mainmenu_hover.gif');
+ background-repeat: repeat-x;
+ background-position: top left;
+ color: #fff;
+}
+
+#mainmenu ul li a.active
+{
+ background-image: url('imgs/mainmenu_active.gif');
+ background-repeat: repeat-x;
+ background-position: top left;
+ color: #91A412;
+}
+
+/* main page */
+
+div.intro
+{
+ height: 190px;
+ background-image: url('imgs/bigmantis.jpg');
+ background-repeat: no-repeat;
+ background-position: top right;
+ background-color: #fff;
+}
+
+div.statements
+{
+ height: 165px;
+ background-image: url('imgs/statementsbg.gif');
+ background-repeat: repeat-x;
+ position: relative;
+ border-bottom : 1px solid #EEE;
+}
+
+div.statements div
+{
+ position: absolute;
+ width: 250px;
+ top: 20px;
+}
+
+div.statements div p
+{
+ font-size: 13px;
+ color: #818181;
+}
+
+div.statements div.whatis
+{
+ left: 20px;
+}
+
+div.statements div.whatreq
+{
+ left: 310px;
+}
+
+div.statements div.cani
+{
+ left: 590px;
+ width: 250px;
+}
+
+/* navbar */
+#navbar
+{
+ border-bottom: 2px solid #E9EEEF;
+ height: 30px;
+ margin-bottom: 20px;
+}
+
+#navbar ul
+{
+ margin-left: 0;
+ padding-left: 0;
+ display: inline;
+}
+
+#navbar ul li
+{
+ margin-left: 0px;
+ list-style: none;
+ display: inline;
+}
+
+#navbar ul li a
+{
+ display: block;
+ float: left;
+ font-size: 14px;
+ font-weight: bold;
+ padding-right: 14px;
+ padding-top: 5px;
+ color: #CD2B26;
+ height: 29px;
+}
+
+#navbar ul li a.active, #navbar ul li a.hover
+{
+ color: #821B18;
+}
+
+#navbar ul li a.hover
+{
+ text-decoration: underline;
+}
+
+/* infobar */
+div#infobar
+{
+ float: right;
+ width: 200px;
+ padding-left: 20px;
+ border-left: 2px solid #E9EEEF;
+}
+
+div#infobar div
+{
+ margin-bottom: 20px;
+}
+
+div#infobar div#featured img
+{
+ margin-top: 10px;
+}
+
+/* articles */
+
+div#articles
+{
+ width: 560px;
+ float: left;
+}
+
+/* article */
+
+div.article
+{
+ margin-bottom: 40px;
+}
+
+div.article .date
+{
+ color: #9F9291;
+}
+
+div.article .more
+{
+ margin-right: 10px;
+ display: block;
+ text-align: right;
+}
+
+.logo
+{
+ position: absolute;
+ margin-left: 15px;
+ margin-top: 0px;
+ z-index: 1;
+}
+
+#main
+{
+ padding: 20px;
+ padding-top: 20px;
+ background-color: #fff;
+}
+
+div.mantis
+{
+ height: 190px;
+ background-color: #fff;
+ background-image: url('imgs/bigmantis.jpg');
+ background-repeat: no-repeat;
+ background-position: top right;
+ border-bottom: 1px solid #DCDCDC;
+}
+
+div.releases
+{
+ float: left;
+ width: 240px;
+ height: 190px;
+ background-image: url('imgs/pradodownload.gif');
+ background-repeat: no-repeat;
+}
+
+div.releases div.official
+{
+ width: 190px;
+ position: relative;
+ left: 52px;
+ top: 128px;
+ font-size: 8pt;
+ color: #6D6D6D;
+}
+
+div.releases div.official a
+{
+ display: block;
+}
+
+div.whyprado
+{
+ display: block;
+ float: left;
+}
+
+div.whyprado ul.list
+{
+ margin-top: 40px;
+ margin-left: 40px;
+}
+
+div.whyprado ul.list li
+{
+ display: block;
+ margin: 5px;
+ padding: 0px;
+ font-size: 18px;
+ background-repeat: no-repeat;
+ background-position: bottom left;
+ padding-left: 30px;
+ list-style: none;
+}
+
+div.whyprado ul.list li.one
+{
+ background-image: url('imgs/bullet_one.gif');
+}
+
+div.whyprado ul.list li.two
+{
+ background-image: url('imgs/bullet_two.gif');
+}
+
+div.whyprado ul.list li.three
+{
+ background-image: url('imgs/bullet_three.gif');
+}
+
+div.whyprado ul.list li a
+{
+ color: #9F9291;
+ text-decoration: none;
+}
+
+#footer
+{
+ border-top: 1px solid #e9eeef;
+ background-color: #fff;
+ clear: both;
+ color: #A7A7A7;
+ font-size: 8pt;
+ text-align: center;
+ padding-top: 10px;
+ padding-bottom: 30px;
+ background-image: url('imgs/bottomgradient.gif');
+ background-repeat: repeat-x;
+ background-position: bottom;
+}
+
+#ads
+{
+ font-size: 8pt;
+ text-align: center;
+}
+#features
+{
+ margin-left: 610px;
+ padding: 10px;
+ padding-left: 10px;
+ padding-right: 10px;
+ background-color: #BEDD75;
+ color: #344A1E;
+ font-size: 9pt;
+}
+
+#features ul
+{
+ margin: 10px;
+ padding: 0px;
+}
+
+#features ul li
+{
+ font-size: 8pt;
+ padding: 0px;
+ margin: 0px;
+ margin-top: 8px;
+}
+
+#features h3
+{
+ margin: 0px;
+ padding: 0px;
+ font-size: 10pt;
+ color: #292E1D;
+ text-align: center;
+ border-bottom: 1px solid silver;
+}
+
+#news
+{
+ float: left;
+ width: 590px;
+}
+
+.newstitle
+{
+ font-size: 12pt;
+ font-weight: bold;
+ color: #555;
+ margin-top: 10px;
+ margin-bottom: 0px;
+ border-bottom: 1px solid silver;
+}
+
+.newscontentmore
+{
+ margin-right: 10px;
+ display: block;
+ color: #50811A;
+ text-align: right;
+}
+
+.newscontentmore:hover
+{
+ color: red;
+}
+
+.newstime
+{
+ margin: 0px;
+ font-size:0.8em;
+ color:#aaa;
+ padding-left:10px;
+ text-align: right;
+}
+
+.newscontent
+{
+ margin-top: 5px;
+}
+
+#leftpanel
+{
+ float: left;
+ width: 550px;
+}
+
+#topics
+{
+ border: 1px solid #804040;
+ margin-left: 610px;
+ padding-bottom: 10px;
+}
+
+#topicsheader
+{
+ text-align:center;
+ font-weight:bold;
+ background-color:#804040;
+ color:#FFFFBC;
+ padding: 3px;
+ margin-bottom:0px;
+}
+
+.topicitem
+{
+ padding: 5px;
+}
+
+.topicitem a:hover
+{
+ text-decoration: underline;
+}
+
+.topicitem p
+{
+ margin: 0px;
+ font-size:0.8em;
+ color:#aaa;
+ padding-left:10px;
+ white-space:nowrap;
+}
+
+.reference
+{
+}
+
+.reference img
+{
+ margin: 10px;
+}
+
+.reference h3
+{
+}
+
+
+.download
+{
+ width: 100%;
+ background-color: #aaa;
+}
+
+.download td
+{
+ background-color: #FFFFFF;
+ padding: 2px 5px;
+ font-size: 9pt;
+}
+
+.download td a
+{
+ font-weight: bold;
+}
+
+.download td.type
+{
+ font-family: "courier new", courier;
+ text-align: right;
+ vertical-align: top;
+}
+
+.download div.declaration
+{
+ font-family: "courier new", courier;
+}
+
+
+.download th
+{
+ background-color: #F0F0F0;
+ font-weight: bold;
+ font-size: 9pt;
+ padding: 5px;
+ text-align: left;
+}
+
+.download th.small
+{
+ font-size: 1.0em;
+}
+
+.download tr.reference td {
+ background-color: #FFEDED;
+}
+
+
+.doc-title
+{
+ font-size: 14pt;
+ font-weight: bold;
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+.doc-subtitle
+{
+ font-size: 11pt;
+ font-weight: bold;
+ background-color: #EEE;
+ padding: 5px;
+ margin-top: 20px;
+}
+
+.doc-namespace
+{
+ font-size: 8pt;
+}
+
+
+.doc-menu
+{
+}
+
+.doc-classes
+{
+}
+
+.doc-ancestors
+{
+ font-size: 8pt;
+}
+
+.doc-properties
+{
+ font-size: 9pt;
+}
+
+.doc-properties table
+{
+ border-collapse: collapse;
+ background-color: silver;
+ width: 100%;
+}
+
+.doc-properties td, .doc-properties th
+{
+ padding: 3px;
+ vertical-align: top;
+ background-color: white;
+ border: 1px solid silver;
+}
+
+.doc-events
+{
+ font-size: 9pt;
+}
+
+.doc-events table
+{
+ border-collapse: collapse;
+ background-color: silver;
+ width: 100%;
+}
+
+.doc-events td, .doc-events th
+{
+ padding: 3px;
+ vertical-align: top;
+ background-color: white;
+ border: 1px solid silver;
+}
+
+.doc-methods
+{
+ font-size: 9pt;
+}
+
+.doc-methods table
+{
+ border-collapse: collapse;
+ background-color: silver;
+ width: 100%;
+}
+
+.doc-methods td, .doc-methods th
+{
+ padding: 3px;
+ vertical-align: top;
+ background-color: white;
+ border: 1px solid silver;
+}
+
+.doc-derived
+{
+}
+
+.doc-inherited
+{
+}
+
+.doc-native td
+{
+ background-color: lightyellow;
+}
+
+.forum-topic
+{
+ padding: 10px;
+ border:1px solid silver;
+ margin-bottom: 10px;
+}
+
+
+.demo-list li
+{
+ margin-bottom: 1em;
+}
+
+.autocomplete
+{
+ border:1px solid #ccc;
+ background-color:white;
+}
+.autocomplete ul, .autocomplete li
+{
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ font-size: 11px;
+ font-family: Tahoma, Arial, Helvetica, sans-serif;
+ color: #333;
+}
+
+ul.different
+{
+ background-color: pink;
+}
+
+.autocomplete li
+{
+ padding: 5px;
+ background-color: #ffe;
+}
+.autocomplete .selected
+{
+ background-color: #eec;
+}
+
+#ads ul
+{
+ list-style-type: none;
+ margin: 5px;
+ margin-left: 0px;
+ padding: 0;
+ font-size: 10px;
+}
+
+#ads li
+{
+ margin-bottom: 7px;
+}
+
+#ads a
+{
+ color: black;
+ border-bottom: 1px dashed silver;
+}
+
+#changelog
+{
+ overflow:scroll;
+ height: 250px;
+ border:1px solid #ccc;
+ white-space: pre-wrap; /* CSS 3 */
+ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ word-wrap: break-word; /* Internet Explorer 5.5+ */
+ padding: 10px;
+ -webkit-box-shadow: inset 0px -10px 10px -5px rgba(0,0,0,0.75);
+ -moz-box-shadow: inset 0px -10px 10px -5px rgba(0,0,0,0.75);
+ box-shadow: inset 0px -10px 10px -5px rgba(0,0,0,0.75);
+}
diff --git a/framework/pradolite.php b/framework/pradolite.php
index af6026ae..bb055e30 100644
--- a/framework/pradolite.php
+++ b/framework/pradolite.php
@@ -1,7 +1,7 @@
<?php
/**
* File Name: pradolite.php
- * Last Update: 2015/11/07 12:19:59
+ * Last Update: 2015/11/09 00:26:38
* Generated By: buildscripts/phpbuilder/build.php
*
* This file is used in lieu of prado.php to boost PRADO application performance.