summaryrefslogtreecommitdiff
path: root/demos/blog-tutorial/protected/pages/Day1
diff options
context:
space:
mode:
authorFabio Bas <ctrlaltca@gmail.com>2015-12-07 15:57:51 +0100
committerFabio Bas <ctrlaltca@gmail.com>2015-12-07 15:57:51 +0100
commit654a9cae43358c7eecf3b522e9876aa7815e2453 (patch)
tree545f2e42fdc6e824b247924adf083ad3fe51e61d /demos/blog-tutorial/protected/pages/Day1
parente99e35819d53dc48ae4e9a8491528a6b6011469f (diff)
Move urls from pradosoft.com to github's project page; drop unmaintained quickstart tutorial translations
Diffstat (limited to 'demos/blog-tutorial/protected/pages/Day1')
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/CreateContact.page18
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/Setup.page12
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/ShareLayout.page20
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/fr/CreateContact.page202
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/fr/Setup.page160
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/fr/ShareLayout.page180
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/fr/directories.gifbin3611 -> 0 bytes
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/fr/directories2.gifbin4147 -> 0 bytes
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/fr/directories3.gifbin3531 -> 0 bytes
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/fr/output.gifbin13379 -> 0 bytes
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/id/CreateContact.page203
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/id/Setup.page163
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/id/ShareLayout.page178
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/id/directories.gifbin3611 -> 0 bytes
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/id/directories2.gifbin4147 -> 0 bytes
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/id/directories3.gifbin3531 -> 0 bytes
-rwxr-xr-xdemos/blog-tutorial/protected/pages/Day1/id/output.gifbin13379 -> 0 bytes
17 files changed, 25 insertions, 1111 deletions
diff --git a/demos/blog-tutorial/protected/pages/Day1/CreateContact.page b/demos/blog-tutorial/protected/pages/Day1/CreateContact.page
index 0d9fc026..ea7b9253 100755
--- a/demos/blog-tutorial/protected/pages/Day1/CreateContact.page
+++ b/demos/blog-tutorial/protected/pages/Day1/CreateContact.page
@@ -3,7 +3,7 @@
<h1>Creating Contact Page</h1>
<p>
-We have created a default page <tt>Home.page</tt> using the <a href="http://www.pradosoft.com/demos/quickstart/?page=GettingStarted.CommandLine">PRADO command line tool</a>. The page is relatively static because it does not containt dynamic content. In this section, we will create an interactive page named <tt>Contact</tt>.
+We have created a default page <tt>Home.page</tt> using the <a href="http://www.pradoframework.net/site/demos/quickstart/?page=GettingStarted.CommandLine">PRADO command line tool</a>. The page is relatively static because it does not containt dynamic content. In this section, we will create an interactive page named <tt>Contact</tt>.
</p>
<p>
@@ -17,7 +17,7 @@ To create the <tt>Contact</tt> page, we need two files under the <tt>pages</tt>
<img src="<%~ directories2.gif %>" class="output" />
<com:InfoBox>
-A <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Pages">page</a> must have either a <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">template</a> file (extension <tt>.page</tt>) or a class file, or both:
+A <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Fundamentals.Pages">page</a> must have either a <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Configurations.Templates1">template</a> file (extension <tt>.page</tt>) or a class file, or both:
</p>
<ul>
@@ -35,7 +35,7 @@ We first create the template file for the <tt>Contact</tt> page.
</p>
<p>
-We use template to organize the presentational layout of the feedback form. In the template, we use <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.TextBox">textboxes</a> to collect user's name, email and feedback. And we use <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.Validation">validators</a> to ensure that the user provides all these information before submitting the feedback form. The whole template is as follows,
+We use template to organize the presentational layout of the feedback form. In the template, we use <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Controls.TextBox">textboxes</a> to collect user's name, email and feedback. And we use <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Controls.Validation">validators</a> to ensure that the user provides all these information before submitting the feedback form. The whole template is as follows,
</p>
<com:TTextHighlighter CssClass="source" Language="prado">
@@ -86,11 +86,11 @@ We use template to organize the presentational layout of the feedback form. In t
</com:TTextHighlighter>
<p>
-As we can see that the template looks very similar to a normal HTML page. The main difference is that the template contains a few <tt>&lt;com:&gt;</tt> tags. Each <tt>&lt;com:&gt;</tt> tag refers to a <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Controls">control</a> whose properties are being initialized with name-value pairs in the tag. For example, the <tt>&lt;com:TButton&gt;</tt> refers to the <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.Button">TButton</a> control which displays a button that users can click on to submit the feedback form. For complete template syntax, please refer to the <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">Quickstart Tutorial</a>.
+As we can see that the template looks very similar to a normal HTML page. The main difference is that the template contains a few <tt>&lt;com:&gt;</tt> tags. Each <tt>&lt;com:&gt;</tt> tag refers to a <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Fundamentals.Controls">control</a> whose properties are being initialized with name-value pairs in the tag. For example, the <tt>&lt;com:TButton&gt;</tt> refers to the <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Controls.Button">TButton</a> control which displays a button that users can click on to submit the feedback form. For complete template syntax, please refer to the <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Configurations.Templates1">Quickstart Tutorial</a>.
</p>
<com:InfoBox>
-PRADO provides a control for every type of HTML input. For example, <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.TextBox">TTextBox</a> displays a text input field, <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.List">TDropDownList</a> displays a combobox. Each control is a component that may be accessed in code as an object with configurable properties.
+PRADO provides a control for every type of HTML input. For example, <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Controls.TextBox">TTextBox</a> displays a text input field, <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Controls.List">TDropDownList</a> displays a combobox. Each control is a component that may be accessed in code as an object with configurable properties.
</com:InfoBox>
<p>
@@ -117,10 +117,10 @@ Below we summarize the controls that are used in the page template:
</p>
<ul>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TForm">TForm</a> displays an HTML form. Any input control must be enclosed within it. And most importantly, at most one <tt>TForm</tt> may appear in a page.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TTextBox">TTextBox</a> displays a text box to collect user text input.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TRequiredFieldValidator">TRequiredFieldValidator</a> ensures that the associated text box is not empty when the feedback is submitted.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TEmailAddressValidator">TEmailAddressValidator</a> ensures that the textbox contains a <i>valid</i> email address when the feedback is submitted.</li>
+<li><a href="http://pradosoft.github.io/docs/manual/class-TForm">TForm</a> displays an HTML form. Any input control must be enclosed within it. And most importantly, at most one <tt>TForm</tt> may appear in a page.</li>
+<li><a href="http://pradosoft.github.io/docs/manual/class-TTextBox">TTextBox</a> displays a text box to collect user text input.</li>
+<li><a href="http://pradosoft.github.io/docs/manual/class-TRequiredFieldValidator">TRequiredFieldValidator</a> ensures that the associated text box is not empty when the feedback is submitted.</li>
+<li><a href="http://pradosoft.github.io/docs/manual/class-TEmailAddressValidator">TEmailAddressValidator</a> ensures that the textbox contains a <i>valid</i> email address when the feedback is submitted.</li>
</ul>
<com:TipBox>
diff --git a/demos/blog-tutorial/protected/pages/Day1/Setup.page b/demos/blog-tutorial/protected/pages/Day1/Setup.page
index 582d0399..b8df0705 100755
--- a/demos/blog-tutorial/protected/pages/Day1/Setup.page
+++ b/demos/blog-tutorial/protected/pages/Day1/Setup.page
@@ -3,7 +3,7 @@
<h1>Initial Setup</h1>
<p>
-We start by setting up the directories and the files that are required by most PRADO applications. We use the <a href="http://www.pradosoft.com/demos/quickstart/?page=GettingStarted.CommandLine">PRADO command line tool</a> to achieve this goal.
+We start by setting up the directories and the files that are required by most PRADO applications. We use the <a href="http://www.pradoframework.net/site/demos/quickstart/?page=GettingStarted.CommandLine">PRADO command line tool</a> to achieve this goal.
</p>
<p>
@@ -11,7 +11,7 @@ Assume <tt>blog</tt> is the name of the directory to hold the whole blog system,
</p>
<p>
-Under the <tt>blog</tt> directory, we run the <a href="http://www.pradosoft.com/demos/quickstart/?page=GettingStarted.CommandLine">PRADO command line tool</a> with the following command (replace <tt>path/to</tt> with the actual path to the PRADO framework installation):
+Under the <tt>blog</tt> directory, we run the <a href="http://www.pradoframework.net/site/demos/quickstart/?page=GettingStarted.CommandLine">PRADO command line tool</a> with the following command (replace <tt>path/to</tt> with the actual path to the PRADO framework installation):
</p>
<com:TTextHighlighter CssClass="source cli">
php path/to/prado-cli.php -c .
@@ -60,7 +60,7 @@ The name of the entry script does not need to be <tt>index.php</tt>. It can be a
<h3>Application Configuration</h3>
<p>
-The <i>optional</i> XML file <tt>application.xml</tt> contains the <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.AppConfig">application configuration</a>. Its main purpose is to customize in a configurable fashion the application instance created in the entry script. For example, we may enable the <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.Logging">logging</a> feature for our blog system with the help of application configuration.
+The <i>optional</i> XML file <tt>application.xml</tt> contains the <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Configurations.AppConfig">application configuration</a>. Its main purpose is to customize in a configurable fashion the application instance created in the entry script. For example, we may enable the <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Advanced.Logging">logging</a> feature for our blog system with the help of application configuration.
</p>
<p>
@@ -71,11 +71,11 @@ The file <tt>application.xml</tt> we have now is nearly empty. In fact, we may s
<h3>Homepage</h3>
<p>
-The homepage (also called default page) <tt>Home.page</tt> is the only <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Pages">page</a> created by the PRADO command line tool. It is the content in this file that shows up in the browser when visiting the URL <tt>http://hostname/blog/index.php</tt>.
+The homepage (also called default page) <tt>Home.page</tt> is the only <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Fundamentals.Pages">page</a> created by the PRADO command line tool. It is the content in this file that shows up in the browser when visiting the URL <tt>http://hostname/blog/index.php</tt>.
</p>
<p>
-Content in the file <tt>Home.page</tt> uses the <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">PRADO template format</a>, which is mostly like HTML enhanced with a few PRADO-specific tags. For example, in <tt>Home.page</tt> we see the following pure HTML content:
+Content in the file <tt>Home.page</tt> uses the <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Configurations.Templates1">PRADO template format</a>, which is mostly like HTML enhanced with a few PRADO-specific tags. For example, in <tt>Home.page</tt> we see the following pure HTML content:
</p>
<com:TTextHighlighter CssClass="source" Language="prado">
@@ -117,7 +117,7 @@ It is safe to remove files and directories under <tt>protected/runtime</tt> and
<h3>The <tt>pages</tt> Directory</h3>
<p>
-The <tt>pages</tt> directory is the <i>root page directory</i> holding all <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Pages">pages</a> in a PRADO application. It bears an analogy to the <tt>htdocs</tt> directory for the Apache httpd Web server.
+The <tt>pages</tt> directory is the <i>root page directory</i> holding all <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Fundamentals.Pages">pages</a> in a PRADO application. It bears an analogy to the <tt>htdocs</tt> directory for the Apache httpd Web server.
</p>
<p>
diff --git a/demos/blog-tutorial/protected/pages/Day1/ShareLayout.page b/demos/blog-tutorial/protected/pages/Day1/ShareLayout.page
index 6115ef22..a8d4b5bd 100755
--- a/demos/blog-tutorial/protected/pages/Day1/ShareLayout.page
+++ b/demos/blog-tutorial/protected/pages/Day1/ShareLayout.page
@@ -3,11 +3,11 @@
<h1>Sharing Common Layout</h1>
<p>
-In this section, we will use the <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.MasterContent">master/content</a> feature of PRADO to share common layout among pages. Common layout refers to the area that is the same or largely the same for a set of pages. For example, in our blog system, all pages will share the same header, footer and side-bar containing shortcut links. A straightforward implementation is to repeat the common layout in every page. However, this approach is prone to error and is hard to maintain. The <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.MasterContent">master/content</a> feature allows us to treat the common layout as a control which centralizes the logic and presentation of the common layout for every page.
+In this section, we will use the <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Advanced.MasterContent">master/content</a> feature of PRADO to share common layout among pages. Common layout refers to the area that is the same or largely the same for a set of pages. For example, in our blog system, all pages will share the same header, footer and side-bar containing shortcut links. A straightforward implementation is to repeat the common layout in every page. However, this approach is prone to error and is hard to maintain. The <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Advanced.MasterContent">master/content</a> feature allows us to treat the common layout as a control which centralizes the logic and presentation of the common layout for every page.
</p>
<com:InfoBox>
-It is also possible to share common layout via <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">template inclusion</a>, which is like PHP file inclusion. The drawback of template inclusion is that it is not self-contained and does not carry a class to contain the logic for the common layout.
+It is also possible to share common layout via <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Configurations.Templates1">template inclusion</a>, which is like PHP file inclusion. The drawback of template inclusion is that it is not self-contained and does not carry a class to contain the logic for the common layout.
</com:InfoBox>
@@ -52,9 +52,9 @@ For the moment, <tt>MainLayout</tt> only contains a simple header and a footer,
The above shows the content in the template file <tt>MainLayout.tpl</tt>. Three new tags are used:
</p>
<ul>
-<li><tt>&lt;com:TContentPlaceHolder&gt;</tt> represents <a href="http://www.pradosoft.com/docs/classdoc/TContentPlaceHolder">TContentPlaceHolder</a> control. It reserves the place in the template where content will be placed at. Here, the content comes from the pages who use this master control.</li>
-<li><tt>&lt;com:THead&gt;</tt> represents <a href="http://www.pradosoft.com/docs/classdoc/THead">THead</a> control which represents the &lt;head&gt; tag in HTML. It allows PRADO to manipulate the &lt;head&gt; tag as a component (e.g., setting page titles, adding custom CSS styles.)</li>
-<li><tt>&lt;%= %&gt;</tt> is an <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates2#et">expression tag</a>. It displays the evaluation result of the enclosed expression at the place where it appears.</li>
+<li><tt>&lt;com:TContentPlaceHolder&gt;</tt> represents <a href="http://pradosoft.github.io/docs/manual/class-TContentPlaceHolder">TContentPlaceHolder</a> control. It reserves the place in the template where content will be placed at. Here, the content comes from the pages who use this master control.</li>
+<li><tt>&lt;com:THead&gt;</tt> represents <a href="http://pradosoft.github.io/docs/manual/class-THead">THead</a> control which represents the &lt;head&gt; tag in HTML. It allows PRADO to manipulate the &lt;head&gt; tag as a component (e.g., setting page titles, adding custom CSS styles.)</li>
+<li><tt>&lt;%= %&gt;</tt> is an <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Configurations.Templates2#et">expression tag</a>. It displays the evaluation result of the enclosed expression at the place where it appears.</li>
</ul>
<p>
@@ -69,7 +69,7 @@ class MainLayout extends TTemplateControl
</com:TTextHighlighter>
<com:InfoBox>
-The file extension name for page templates is <tt>.page</tt>, while for non-page templates it is <tt>.tpl</tt>. This is to differentiate pages from other controls. They both use the same <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">template syntax</a>. For pages, their class files are optional (default to <tt>TPage</tt>), while for non-page controls, their class files are mandatory. Similar to Java, the name of a class file must be the same as the class name. Be careful about the case-sensitivity on Linux/Unix systems.
+The file extension name for page templates is <tt>.page</tt>, while for non-page templates it is <tt>.tpl</tt>. This is to differentiate pages from other controls. They both use the same <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Configurations.Templates1">template syntax</a>. For pages, their class files are optional (default to <tt>TPage</tt>), while for non-page controls, their class files are mandatory. Similar to Java, the name of a class file must be the same as the class name. Be careful about the case-sensitivity on Linux/Unix systems.
</com:InfoBox>
@@ -110,15 +110,15 @@ It is possible to have multiple <tt>TContentPlaceHolder</tt>'s in a master templ
</com:InfoBox>
<p>
-Besides <tt>&lt;com:TContent&gt;</tt>, we also see another new tag <tt>&lt;%@ %&gt;</tt> in the above, which is called <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1#tct">template control tag</a>. It contains name-value pairs which are used to initialize the corresponding properties for the template owner, namely, the <tt>Contact</tt> page.
+Besides <tt>&lt;com:TContent&gt;</tt>, we also see another new tag <tt>&lt;%@ %&gt;</tt> in the above, which is called <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Configurations.Templates1#tct">template control tag</a>. It contains name-value pairs which are used to initialize the corresponding properties for the template owner, namely, the <tt>Contact</tt> page.
</p>
<p>
-By setting <tt>MasterClass</tt> property as <tt>Application.layouts.MainLayout</tt>, we instruct the <tt>Contact</tt> page to use <tt>MainLayout</tt> as its master. Here, we are using the <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Components">namespace format</a> to refer to the <tt>MainLayout</tt> class.
+By setting <tt>MasterClass</tt> property as <tt>Application.layouts.MainLayout</tt>, we instruct the <tt>Contact</tt> page to use <tt>MainLayout</tt> as its master. Here, we are using the <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Fundamentals.Components">namespace format</a> to refer to the <tt>MainLayout</tt> class.
</p>
<com:InfoBox>
-Namespace format is widely used in PRADO programming. It is used together with <a href="http://www.pradosoft.com/demos/quickstart/index.php?page=Fundamentals.Components">path aliases</a>. PRADO defines two path aliases: <tt>System</tt> refers to the <tt>framework</tt> directory of the PRADO installation, and <tt>Application</tt> refers to the <tt>protected</tt> directory. The namespace <tt>Application.layouts.MainLayout</tt> can thus be translated as <tt>protected/layouts/MainLayout</tt> which is exactly the file name (without the extension <tt>.php</tt>) for the <tt>MainLayout</tt> class.
+Namespace format is widely used in PRADO programming. It is used together with <a href="http://www.pradoframework.net/site/demos/quickstart/index.php?page=Fundamentals.Components">path aliases</a>. PRADO defines two path aliases: <tt>System</tt> refers to the <tt>framework</tt> directory of the PRADO installation, and <tt>Application</tt> refers to the <tt>protected</tt> directory. The namespace <tt>Application.layouts.MainLayout</tt> can thus be translated as <tt>protected/layouts/MainLayout</tt> which is exactly the file name (without the extension <tt>.php</tt>) for the <tt>MainLayout</tt> class.
</com:InfoBox>
@@ -151,7 +151,7 @@ In the above, we specify <tt>MasterClass</tt> in the <tt>onPreInit()</tt> method
</p>
<p>
-We can also specify master in <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.AppConfig">application configuration</a> or <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.PageConfig">page configuration</a>. The following shows the updated application configuration for our blog system:
+We can also specify master in <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Configurations.AppConfig">application configuration</a> or <a href="http://www.pradoframework.net/site/demos/quickstart/?page=Configurations.PageConfig">page configuration</a>. The following shows the updated application configuration for our blog system:
</p>
<com:TTextHighlighter CssClass="source" Language="xml">
diff --git a/demos/blog-tutorial/protected/pages/Day1/fr/CreateContact.page b/demos/blog-tutorial/protected/pages/Day1/fr/CreateContact.page
deleted file mode 100755
index 0105f656..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/fr/CreateContact.page
+++ /dev/null
@@ -1,202 +0,0 @@
-<com:TContent ID="Main">
-
-<h1>Création de la page Contact</h1>
-
-<p>
-Nous avons créé une page par défaut <tt>Home.page</tt> en utilisant les <a href="http://www.pradosoft.com/demos/quickstart/?page=GettingStarted.CommandLine">outils en ligne de commande de PRADO</a>. Cette page est relativement statique parce qu'elle ne contient que du contenu HTML. Dans cette session, nous allons créer une page dynamique dénommée <tt>Contact</tt>.
-</p>
-
-<p>
-Le but de cette page est de collecter les retours d'informations des utilisateurs Web concernant notre outil de blog. Pour atteindre ce but, nous envisageons d'utiliser un formulaire qui sera à remplir. Dans ce formulaire, nous demanderons le nom de l'utilisateur, son adresse email et son commentaire. Après que le formulaire ai été rempli et envoyé, un email avec le commentaire sera envoyé à l'administrateur.
-</p>
-
-<p>
-Pour créer la page <tt>Contact</tt>, nous avons besoin de 2 fichiers dans le dossier <tt>pages</tt> : le fichier de gabarit <tt>Contact.page</tt> et le fichier de classe PHP <tt>Contact.PHP</tt>.
-</p>
-
-<img src="<%~ directories2.gif %>" class="output" />
-
-<com:InfoBox>
-Une <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Pages">page</a> doit avoir un fichier de <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">gabarit</a> (extension <tt>.page</tt>) ou un fichier de classe PHP, ou les deux :
-</p>
-
-<ul>
-<li>Une page avec seulement un gabarit est généralement une page statique, comme la page d'accueil que nous avons déjà créée ;</li>
-<li>Une page avec seulement un fichier de classe PHP produit le code HTML directement à partir de l'exécution du script.
-<li>Une page avec un gabarit et un fichier de classe PHP combine les avantages des deux : un gabarit pour facilement organiser la présentation de la page et un fichier de classe PHP pour produire le contenu dynamique.</li>
-</ul>
-</com:InfoBox>
-
-
-<h2>Création de la page gabarit</h2>
-
-<p>
-Nous allons premièrement créer le fichier gabarit de la page <tt>Contact</tt>.
-</p>
-
-<p>
-Nous utilisons un fichier gabarit pour organiser la présentation de notre formulaire. Dans notre gabarit, nous utilisons des <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.TextBox">champs de saisie</a> pour collecter le nom de l'utilisateur, son email et son commentaire. D'autre part, nous utilisons des <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.Validation">validateurs</a> pour nous assurer que l'utilisateur a bien fourni les éléments avant d'envoyer le formulaire. Le contenu complet du gabarit est le suivant,
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-<html>
-<head><title>Mon Blog - Contact</title></head>
-<body>
-<h1>Contact</h1>
-<p>Veuillez remplir le formulaire suivant pour me laisser vos impressions au sujet de mon blog. Merci !</p>
-
-&lt;com:TForm>
-
-<span>Votre nom:</span>
-&lt;com:TRequiredFieldValidator ControlToValidate="Name"
- ErrorMessage="Veuillez indiquer votre nom."
- Display="Dynamic" />
-<br/>
-&lt;com:TTextBox ID="Name" />
-
-<br/>
-<span>Votre email:</span>
-&lt;com:TRequiredFieldValidator ControlToValidate="Email"
- ErrorMessage="Veuillez indiquer votre email."
- Display="Dynamic" />
-&lt;com:TEmailAddressValidator ControlToValidate="Email"
- ErrorMessage="Vous avez saisi un email invalide."
- Display="Dynamic" />
-<br/>
-&lt;com:TTextBox ID="Email" />
-
-<br/>
-<span>Commentaires:</span>
-&lt;com:TRequiredFieldValidator ControlToValidate="Feedback"
- ErrorMessage="Veuillez saisir un commentaire."
- Display="Dynamic" />
-<br/>
-&lt;com:TTextBox ID="Feedback"
- TextMode="MultiLine"
- Rows="10"
- Columns="40" />
-
-<br/>
-&lt;com:TButton Text="Envoyer" OnClick="submitButtonClicked" />
-
-&lt;/com:TForm>
-
-</body>
-</html>
-</com:TTextHighlighter>
-
-<p>
-Comme vous pouvez le voir, un fichier gabarit ressemble énormément à un fichier HTML classique. La principale différence concerne le fichier gabarit qui contient quelques balises <tt>&lt;com:&gt;</tt>. Chaque balise <tt>&lt;com:&gt;</tt> fait référence à un <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Controls">contrôle</a> dont les propriétés sont initialisées grâce aux paires nom-valeur de la balise. Par exemple, la balise <tt>&lt;com:TButton&gt;</tt> fait référence au contrôle <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.Button">TButton</a> qui affiche un bouton permettant à l'utilisateur de soumettre le formulaire. Pour une syntaxe complète, veuillez vous référer au <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">Tutoriel de démarrage rapide</a>.
-
-<com:InfoBox>
-PRADO fournit un contrôle pour chaque type de balise HTML. Par exemple, <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.TextBox">TTextBox</a> affiche un champ de saisie, <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.List">TDropDownList</a> affiche une liste déroulante. Chaque contrôle est un composant auquel on peut accéder par code et dont les propriétés sont modifiables.
-</com:InfoBox>
-
-
-<p>
-Avant le contrôle <tt>TTextBox</tt>, le gabarit utilise aussi plusieurs validateurs qui permettent de s'assurer que les données saisies sont bien conformes à notre attente. Par exemple, pour nous assurer que l'adresse email est valide, nous utilisons les deux validateurs suivants,
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-<span>Your Email:</span>
-&lt;com:TRequiredFieldValidator
- ControlToValidate="Email"
- ErrorMessage="Veuillez indiquer votre email."
- Display="Dynamic" />
-&lt;com:TEmailAddressValidator
- ControlToValidate="Email"
- ErrorMessage="Vous avez saisi un email invalide."
- Display="Dynamic" />
-<br/>
-&lt;com:TTextBox ID="Email" />
-<br/>
-</com:TTextHighlighter>
-
-<p>
-Ci-dessous, un résumé des contrôles utilisés dans le gabarit :
-</p>
-
-<ul>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TForm">TForm</a> affiche un formulaire HTML. Chaque contrôle de saisie doit être au sein d'un TForm. Et le plus important, au plus un <tt>TForm</tt> peut apparaitre dans une page.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TTextBox">TTextBox</a> affiche un champ de saisie utilisateur.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TRequiredFieldValidator">TRequiredFieldValidator</a> s'assure que le contrôle de saisie associé n'est pas vide quand le formulaire est envoyé.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TEmailAddressValidator">TEmailAddressValidator</a> s'assure que le champ de saisie contient une adresse email <i>valide</i> quand le formulaire est envoyé.</li>
-</ul>
-
-<com:TipBox>
-Ecrire des gabarits seulement avec un éditeur de texte peut être pénible et pas vraiment intuitif pour les designers. Pour faciliter ceci, PRADO inclus dans cette version, une extension pour Dreamweaver qui permet la complétion automatique des balises PRADO (ceci inclut le nom des balises, le nom des propriétés, le nom des évènements, etc.).
-</com:TipBox>
-
-<h2>Création du fichier de classe PHP</h2>
-
-<p>
-Nous allons maintenant créer le fichier de classe PHP <tt>Contact.PHP</tt>. Ce fichier est nécessaire parce que nous devons agir après la soumission du formulaire.
-</p>
-
-<p>
-Notez les lignes dans le fichier gabarit. Elles indiquent que lorsque l'utilisateur soumet le formulaire, la méthode <tt>submitButtonClicked()</tt> doit être appelé. Ici, <tt>OnClick</tt> est le nom de l'évènement et la méthode correspondante doit être défini dans le fichier de classe PHP.
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
- &lt;com:TButton Text="Submit" OnClick="submitButtonClicked" />
-</com:TTextHighlighter>
-
-<p>
-Nous écrirons donc le fichier de classe suivant :
-</p>
-
-<com:TTextHighlighter CssClass="source">
-<?PHP
-class Contact extends TPage
-{
- /**
- * Gestionnaire d'évènement pour OnClick (bouton submit).
- * @param TButton le bouton qui a générer l'évènement
- * @param TEventParameter les paramètres de l'évènement (null dans ce cas)
- */
- public function submitButtonClicked($sender, $param)
- {
- if ($this->IsValid) // vérifie que les validations sont Ok
- {
- // récupère le nom de l'utilisateur, son email et son commentaire
- $name = $this->Name->Text;
- $email = $this->Email->Text;
- $feedback = $this->Feedback->Text;
-
- // envoie un email à l'administrateur avec les informations
- $this->mailFeedback($name, $email, $feedback);
- }
- }
-
- protected function mailFeedback($name, $email, $feedback)
- {
- // implémentation de l'envoi de l'email
- }
-}
-</com:TTextHighlighter>
-
-<p>
-Le code précédent est largement explicite. En fait, nous avons juste montré le principe d'un gestionnaire d'évènement. Dans le gestionnaire d'évènement <tt>submitButtonClicked()</tt>, nous récupérons les éléments saisies par l'utilisateur. Par exemple, <tt>$this->Name->Text</tt> retourne la valeur de la propriété <tt>Text</tt> du contrôle <tt>Name</tt> qui est un contrôle permettant la saisie du nom de l'utilisateur.
-</p>
-
-<com:InfoBox>
-Le nom de la classe héritant de TPage doit être le même que le nom du fichier. C'est aussi une nécessité pour écrire n'importe quelle classe de composant PRADO.
-</com:InfoBox>
-
-<h2>Test</h2>
-
-<p>
-Notre nouvelle page <tt>Contact</tt> peut être testée en naviguant à l'URL <tt>http://hostname/blog/index.PHP?page=Contact</tt>. Si vous cliquez sur le bouton "envoyer" sans avoir saisi de données, vous verrez apparaitre des messages d'erreurs à côté des champs de saisie. Si vous entrez toutes les informations nécessaires, la méthode <tt>mailFeedback()</tt> sera appelée.
-</p>
-
-<img src="<%~ output.gif %>" class="output" />
-
-<p>
-Une amélioration possible à notre page serait d'afficher un message de confirmation après que l'utilisateur ai envoyé le formulaire. Il serait aussi envisageable de rediriger le navigateur vers une adresse différente si toutes les informations ont été saisies correctement. Nous laisserons aux lecteurs la mise en place de ces fonctionnalités.
-</p>
-
-<com:InfoBox>
-Chaque validateur représente une règle de validation. Un champ de saisie unique peut être associé à un ou plusieurs validateurs. Les validateurs effectuent les vérifications aussi bien du côté client que du côté serveur. Côté client (navigateur), les validations sont effectuées grâce à du javascript, côté serveur, elles sont effectuées en PHP. Les validations côté client peuvent être désactivées tandis que celles côté serveur ne peuvent l'être. Ceci permet de s'assurer que les règles de validation sont toujours appliquées.
-</com:InfoBox>
-
-</com:TContent> \ No newline at end of file
diff --git a/demos/blog-tutorial/protected/pages/Day1/fr/Setup.page b/demos/blog-tutorial/protected/pages/Day1/fr/Setup.page
deleted file mode 100755
index 0be1c1f0..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/fr/Setup.page
+++ /dev/null
@@ -1,160 +0,0 @@
-<com:TContent ID="Main">
-
-<h1>Installation</h1>
-
-<p>
-Nous commencerons par la mise en place de la structure des dossiers et fichiers requis par la plupart des applications développées avec PRADO. Nous allons utiliser <a href="http://www.pradosoft.com/demos/quickstart/?page=GettingStarted.CommandLine">les outils en ligne de commande</a> pour atteindre ce but.
-</p>
-
-<p>Nous partons du principe que le nom du dossier qui contiendra l'application est <tt>blog</tt> et que l'URL qui permet d'accéder à ce dossier est : <tt>http://hostname/blog/</tt> (remplacer <tt>hostname</tt> par le nom de votre serveur).
-</p>
-
-<p>A l'intérieur du dossier blog, nous utilisons <a href="http://www.pradosoft.com/demos/quickstart/?page=GettingStarted.CommandLine">les outils en ligne de commande</a> avec comme commande (remplacer <tt>path/to</tt> par le chemin d'installation du framework PRADO):
-</p>
-<com:TTextHighlighter CssClass="source cli">
-php path/to/prado-cli.php -c .
-</com:TTextHighlighter>
-
-<p>
-L'utilisation de cette commande permet de créer la structure de dossier et fichiers suivante:
-</p>
-
-<img src="<%~ directories.gif %>" class="output" />
-
-<p>
-Nous avons dorénavant, un squellette d'application PRADO accessible par l'URL <tt>http://hostname/blog/index.php</tt> et qui affiche une page contenant le message "Welcome to PRADO".
-</p>
-
-<p>
-Il est de notre intérêt d'en apprendre plus à propos des dossiers et fichiers que nous venons de créer.
-</p>
-
-<h2>Les fichiers initiaux</h2>
-
-<h3>Le script principal de l'application</h3>
-
-<p>
-Toutes les applications PRADO ont un point d'entrée, habituellement nommé <tt>index.php</tt>. Dans la plupart des cas, c'est le seul script qui est directement accessible par les utilisateurs. Cela réduit les risques que les utilisateurs puissent lancer des scripts serveur auquels ils ne devraient pas avoir accès.
-</p>
-
-<p>
-Le but principal de ce script est d'initialiser l'environnement PRADO et de gérer toutes les requêtes utilisateurs. Ce script contient habituellement les commandes PHP suivantes,
-</p>
-
-<com:TTextHighlighter CssClass="source">
-<?php
-// include prado.php which contains basic PRADO classes
-require_once('path/to/prado.php');
-// create a PRADO application instance
-$application = new TApplication;
-// run the application and handle user requests
-$application->run();
-</com:TTextHighlighter>
-
-<com:InfoBox>
-Le nom du script ne doit pas être obligatoirement <tt>index.php</tt>. Il peut porter n'importe quel nom à partir du moment ou le serveur peut l'interpréter comme étant un script PHP5. Par exemple, sur certains hébergements mutualisés, le script devra porter le nom <tt>index.php5</tt>, ce qui permettra au serveur Web de le traiter correctement.
-</com:InfoBox>
-
-<h3>Le fichier de configuration de l'application</h3>
-<p>
-Le fichier optionnel XML <tt>application.xml</tt> contient la <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.AppConfig">configuration de l'application</a>. Son but principal est de permettre de configurer l'application qui sera créée par le script principal. Par exemple, nous pouvons activer le système de <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.Logging">log</a> pour notre application par le biais du fichier de configuration.
-</p>
-
-<p>
-Le fichier <tt>application.xml</tt> est pour le moment presque vide. De ce fait, nous pouvons le supprimer parce que l'application n'utilise pour le moment que des fonctionnalités de base. Au fur et à mesure que nous avancerons, nous ferons référence régulièrement au fichier <tt>application.xml</tt> et vous expliquerons comment configurer l'application.
-</p>
-
-
-<h3>La page d'accueil</h3>
-
-<p>
-La page d'accueil <tt>Home.page</tt> (aussi dénommée page par défaut) est la seule <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Pages">page</a> créée par les outils en ligne de commande de PRADO. C'est le contenu de ce fichier qui est affiché quand l'utilisateur navigue à l'adresse <tt>http://hostname/blog/index.php</tt>.
-</p>
-
-<p>
-Le contenu du fichier <tt>Home.page</tt> respecte le <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">format de template</a> qui pour la plupart du temps est du code HTML agrémenté de quelques balises spécifiques à PRADO. Par exemple, dans <tt>Home.page</tt> nous voyons du code HTML pur :
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-<html>
-<head>
- <title>Welcome to PRADO</title>
-</head>
-<body>
-<h1>Welcome to PRADO!</h1>
-</body>
-</html>
-</com:TTextHighlighter>
-
-
-<h2>Les dossiers initiaux</h2>
-
-<h3>Le dossier <tt>protected</tt></h3>
-
-<p>
-Le dossier <tt>protected</tt>, aussi connu sous le nom <i>chemin de base de l'application</i>, est le dossier racine qui contient les pages, les gabarits, les fichiers de configuration, les données, etc. Le nom <tt>protected</tt> indique que ce dossier doit être masqué des personnes qui consultent le site, ceci parce que les fichiers dans ce dossier contiennent la plupart du temps des données sensibles.
-</p>
-
-<p>
-Les différents serveurs Web ont différents moyens de "protéger" un dossier. Pour Apache, le moyen le plus simple est de créer dans le dossier un fichier nommé .htaccess avec le contenu <tt>deny from all</tt>.
-</p>
-
-
-<h3>Les dossiers <tt>protected/runtime</tt> et <tt>assets</tt></h3>
-
-<p>
-Les dossiers <tt>protected/runtime</tt> et <tt>assets</tt> sont deux dossiers qui doivent avoir l'autorisation "en écriture" pour le serveur Web. Le dossier <tt>runtime</tt> contient des données sensibles (ie: fichier de configuration déjà analysé) générées à l'exécution de PRADO tandis que le dossier <tt>assets</tt> contient les ressources qui doivent être publiques (ie: les images, les fichiers javascript).
-</p>
-
-<com:InfoBox>
-Il n'y a aucun souci à supprimer les dossiers et les fichiers contenus dans <tt>protected/runtime</tt> et <tt>assets</tt>. Il est recommandé aux développeurs de nettoyer ces dossiers lors d'une mise à jour de PRADO.
-</com:InfoBox>
-
-
-<h3>Le dossier <tt>pages</tt></h3>
-
-<p>
-The <tt>pages</tt> directory is the <i>root page directory</i> holding all <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Pages">pages</a> in a PRADO application. It bears an analogy to the <tt>htdocs</tt> directory for the Apache httpd Web server.
-</p>
-
-<p>
-Nous avons déjà vu comment accéder la page d'accueil. Pour accéder à n'importe quelle page situé dans le dossier <tt>pages</tt>, il faut utiliser l'URL suivante <tt>http://hostname/blog/index.php?page=chemin.vers.NomdelaPage</tt>. En fonction de cette URL, PRADO recherche une page dénommée <tt>NomdelaPage</tt> dans le dossier <tt>pages/chemin/vers</tt>. L'URL que nous avons utilisée précédemment pour accéder à la page d'accueil correspond à <tt>http://hostname/blog/index.php?page=Home</tt>.
-
-
-<h2>Personnalisation</h2>
-
-<p>
-Il est tout à fait possible de personnaliser le nom et l'emplacement des fichiers et dossiers décrit précédemment.
-</p>
-
-<p>
-Par exemple, pour améliorer la sécurité, certains pourraient désirer déplacer la totalité du dossier <tt>protected</tt> à un emplacement inaccessible par le Web. Pour faire cela, utilisez la commande PHP suivante pour initialiser l'instance de l'application PRADO dans le script principal :
-</p>
-
-<com:TTextHighlighter CssClass="source">
-$application = new TApplication( 'path/to/protected' );
-</com:TTextHighlighter>
-
-<p>
-Pour changer l'emplacement du dossier racine des pages et le nom de la page d'accueil, il est possible de modifier le fichier de configuration <tt>application.xml</tt> de cette manière :
-</p>
-
-
-<com:TTextHighlighter CssClass="source" Language="xml">
-<?xml version="1.0" encoding="utf-8"?>
-<application id="blog" mode="Debug">
- <services>
- <service id="page"
- class="TPageService"
- BasePath="path.to.pages"
- DefaultPage="NewHome"
- />
- </services>
-</application>
-</com:TTextHighlighter>
-
-<p>
-En avançant dans l'apprentissage de PRADO, vous verrez que PRADO est très souple et qu'il est possible de personnaliser la plupart des comportements de base. Nous décrirons d'autres techniques au fur et à mesure de ce tutoriel.
-</p>
-
-</com:TContent> \ No newline at end of file
diff --git a/demos/blog-tutorial/protected/pages/Day1/fr/ShareLayout.page b/demos/blog-tutorial/protected/pages/Day1/fr/ShareLayout.page
deleted file mode 100755
index 539b8376..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/fr/ShareLayout.page
+++ /dev/null
@@ -1,180 +0,0 @@
-<com:TContent ID="Main">
-
-<h1>Partager les modèles de gabarit</h1>
-
-<p>
-Dans cette section, nous allons utiliser la fonctionnalité <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.MasterContent">gabarit principal/contenu</a> de PRADO pour partager une mise en page commune sur tout notre site. Les mises en page communes font référence aux parties qui sont identiques ou presque pour un ensemble de pages. Par exemple, dans notre outil de blog, toutes les pages partagent le même entête, pied de page et la même barre latérale contenant les liens. La solution la plus radicale est de répéter sur chaque page les parties communes. Par contre, cette approche est une source d'erreurs et difficile à maintenir. La fonctionnalité <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.MasterContent">gabarit principal/contenu</a> nous permets de traiter les parties communes comme un contrôle qui centralise la logique applicative et la présentation de chaque page.
-</p>
-
-<com:InfoBox>
-Il est aussi possible de partager les parties communes grâce à <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">l'inclusion de gabarits</a>, un peu comme l'inclusion de fichier php. L'inconvénient de l'inclusion de gabarits est que l'on ne peut pas partager la logique applicative.
-</com:InfoBox>
-
-
-<h2>Création du gabarit principal</h2>
-
-<p>
-Nous allons maintenant créer le gabarit principal <tt>MainLayout</tt> qui représente les parties communes partagées par toutes nos pages. Le contrôle <tt>MainLayout</tt> est un contrôle de gabarit qui hérite de <tt>TTemplateControl</tt>. Il a besoin d'un fichier de gabarit <tt>MainLayout.tpl</tt> et d'un fichier de classe <tt>MainLayout.php</tt> situés dans le même dossier. Pour faciliter la maintenance, nous allons créer le nouveau dossier <tt>protected/layouts</tt> pour les accueillir.
-</p>
-
-<img src="<%~ directories3.gif %>" class="output" />
-
-<p>
-Pour le moment, <tt>MainLayout</tt> contient seulement un entête simple et un pied de page, comme décrit ci-après. Plus tard, nous ajouterons une barre latérale. Les lecteurs sont encouragés à ajouter des fonctionnalités.
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-<html>
-&lt;com:THead />
-<body>
-&lt;com:TForm>
-<div id="page">
-
-<div id="header">
-<h1>Mon blog PRADO</h1>
-</div>
-
-<div id="main">
-&lt;com:TContentPlaceHolder ID="Main" />
-</div>
-
-<div id="footer">
-&lt;%= PRADO::poweredByPrado() %>
-</div>
-
-</div>
-&lt;/com:TForm>
-</body>
-</html>
-</com:TTextHighlighter>
-
-<p>
-Ci-dessus, le contenu du fichier de gabarit <tt>MainLayout.tpl</tt>. Trois nouvelles balises sont utilisées.
-</p>
-
-<ul>
-<li><tt>&lt;com:TContentPlaceHolder&gt;</tt> represente un contrôle <a href="http://www.pradosoft.com/docs/classdoc/TContentPlaceHolder">TContentPlaceHolder</a>. Il définit l'emplacement dans le gabarit où le contenu sera inséré. Dans notre cas, le contenu proviendra des pages qui utiliseront notre gabarit principal.</li>
-<li><tt>&lt;com:THead&gt;</tt> représente un contrôle <a href="http://www.pradosoft.com/docs/classdoc/THead">THead</a> qui correspond à la balise &lt;head&gt; d'un document HTML. Ceci permet à PRADO de manipuler la balise &lt;head&gt; comme un composant (ie: définir le titre de la page, ajouter des feuilles de styles CSS.)</li>
-<li><tt>&lt;%= %&gt;</tt> est une <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates2#et">balise de configuration</a>. Elle affiche le résultat de l'évaluation de l'expression à l'endroit où elle se situe.</li>
-</ul>
-
-
-<p>
-Le fichier de classe <tt>MainLayout.php</tt> est très simple :
-</p>
-
-<com:TTextHighlighter CssClass="source">
-<?php
-class MainLayout extends TTemplateControl
-{
-}
-</com:TTextHighlighter>
-
-<com:InfoBox>
-L'extension des fichiers de gabarit est <tt>.page</tt>, tandis que pour les gabarits autres que les pages c'est <tt>.tpl</tt>. Ceci permet de différencier les pages des autres contrôles. Les deux utilisent la même <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">syntaxe de gabarit</a>. Pour les pages, le fichier de classe est optionnel (par défaut hérite de <tt>TPage</tt>), tandis que pour les contrôles, les fichiers de classes sont obligatoires. Comme pour Java, le nom de la classe doit être le même que le nom du fichier de classe. Faites attention à la casse sur les systèmes Linux/Unix.
-</com:InfoBox>
-
-<h2>Utilisation du gabarit principal</h2>
-<p>
-Pour utiliser notre gabarit principal nouvellement créé, nous allons modifier nos fichiers <tt>Home.page</tt> et <tt>Contact.page</tt>. En particulier, nous devons supprimer les entêtes et pied de page parce que le gabarit principal a la responsabilité de les afficher ; par ailleurs, nous devons indiquer aux deux pages que leur gabarit principal est <tt>MainLayout</tt>.
-</p>
-
-<p>
-Ci-dessous, le contenu de <tt>Contact.page</tt> après les modifications :
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-&lt;%@ MasterClass="Application.layouts.MainLayout" Title="Mon blog - Contact" %>
-
-&lt;com:TContent ID="Main">
-
-<h1>Contact</h1>
-<p>Veuillez remplir le formulaire suivant pour me laisser vos impressions au sujet de mon blog. Merci !</p>
-
-...champs de saisie et validateurs pour le nom d'utilisateur...
-
-...champs de saisie et validateurs pour l'email...
-
-...champs de saisie et validateurs pour le commentaire...
-
-&lt;com:TButton Text="Envoyer" OnClick="submitButtonClicked" />
-
-&lt;/com:TContent>
-</com:TTextHighlighter>
-
-<p>
-Le contenu entre les balises <tt>&lt;com:TContent&gt;</tt> sera inséré dans l'emplacement réservé par <tt>&lt;com:TContentPlaceHolder&gt;</tt> dans le gabarit principal.
-</p>
-
-<com:InfoBox>
-Il est possible d'avoir plusieurs <tt>TContentPlaceHolder</tt> dans un gabarit principal et plusieurs <tt>TContent</tt> dans un fichier de contenu. Ils sont associés par leurs propriétés <tt>ID</tt>. Il est aussi possible de définir un contenu comme étant le gabarit principal d'un autre contenu, ceci en plaçant une balise <tt>TContentPlaceHolder</tt> à l'endroit désiré. Ceci est appelé <i>gabarits principaux imbriqués</i>
-</com:InfoBox>
-
-<p>
-A côté de la balise <tt>&lt;com:TContent&gt;</tt>, nous avons vu une nouvelle balise <tt>&lt;%@ %&gt;</tt>, qui est dénommé une <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1#tct">balise de contrôle de gabarit</a>. Elle contient des paires nom-valeur utilisées pour initialiser les propriétés correspondantes du propriétaire de gabarit, dans notre cas, la page <tt>Contact</tt>.
-</p>
-
-<p>
-En définissant la propriété <tt>MasterClass</tt> comme étant de type <tt>Application.layouts.MainLayout</tt>, nous avons indiqué à la page <tt>Contact</tt> d'utiliser <tt>MainLayout</tt> comme gabarit principal. Ici, nous avons utilisé un <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Components">espace de noms</a> pour nous référer à la classe <tt>MainLayout</tt>.
-</p>
-
-<com:InfoBox>
-Les espaces de noms sont largement utilisés en programmation PRADO. Ils sont utilisés conjointement avec les <a href="http://www.pradosoft.com/demos/quickstart/index.php?page=Fundamentals.Components">alias de chemins</a>. PRADO définit deux alias de chemins: <tt>System</tt> fait référence au dossier <tt>framework</tt> de l'installation PRADO, et <tt>Application</tt> fait référence au dossier <tt>protected</tt>.
-L'espace de noms <tt>Application.layouts.MainLayout</tt> peut ainsi être traduit par <tt>protected/layouts/MainLayout</tt> ce qui est précisément le nom du fichier (sans l'extension <tt>.php</tt>) de la classe <tt>MainLayout</tt>.
-</com:InfoBox>
-
-
-<h2>Autres possibilités pour spécifier le gabarit principal</h2>
-
-<p>
-Il y a plusieurs alternatives pour spécifier le gabarit principal.
-</p>
-
-<p>
-Vous pouvez définir le gabarit principal comme ci-dessous pour pouvoir en changer dynamiquement.
-</p>
-
-<com:TTextHighlighter CssClass="source">
-<?php
-class Contact extends TPage
-{
- public function onPreInit($param)
- {
- parent::onPreInit($param);
- $this->MasterClass='Path.To.NewLayout';
- }
-
- // ...
-}
-</com:TTextHighlighter>
-
-<p>
-Ci-dessus, nous indiquons d'utiliser le gabarit principal <tt>MasterClass</tt> dans la méthode <tt>onPreInit()</tt> qui est héritée de <tt>TPage</tt>. Cette méthode est appelé par PRADO juste après que l'instance de la page soit créée. Nous pouvons ainsi déclarer au moment où la page est requise quel gabarit principal utiliser. Par exemple, quand la page est requise par un utilisateur enregistré, nous pouvons utiliser le gabarit A, et le gabarit B si l'utilisateur qui demande la page est un invité.
-</p>
-
-<p>
-Nous pouvons aussi spécifier quel gabarit principal utiliser dans le fichier de <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.AppConfig">configuration de l'application</a> ou encore dans le fichier de <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.PageConfig">configuration de la page</a>. Ci-dessous, le fichier de configuration de l'application modifié pour notre blog.
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="xml">
-<?xml version="1.0" encoding="utf-8"?>
-<application id="blog" mode="Debug">
- <!-- configuration for available services -->
- <services>
- <service id="page" class="TPageService" DefaultPage="Home">
- <!-- initial properties set for all pages -->
- <pages MasterClass="Application.layouts.MainLayout" />
- </service>
- </services>
-</application>
-</com:TTextHighlighter>
-
-<p>
-En faisant cela, nous évitons de définir le gabarit principal dans chaque page. Si nous décidons d'utiliser un autre gabarit principal, il nous suffit de changer le fichier de configuration de l'application. Pour cette raison, dans notre blog, nous utiliserons cette approche.
-</p>
-
-<com:InfoBox>
-Il y a un ordre qui permet de savoir quel fichier gabarit principal utiliser s'il est spécifié à plusieurs endroits. En particulier <tt>onPreInit()</tt> est prioritaire au fichier de configuration de la page qui est lui même prioritaire au fichier de configuration de l'application. Ainsi, si vous spécifiez <tt>MainLayout</tt> dans le fichier de configuration de l'application/page et que vous spécifiez <tt>SpecialLayout</tt> dans <tt>Contact.page</tt>, ce sera le dernier qui sera pris en compte.
-</com:InfoBox>
-
-</com:TContent> \ No newline at end of file
diff --git a/demos/blog-tutorial/protected/pages/Day1/fr/directories.gif b/demos/blog-tutorial/protected/pages/Day1/fr/directories.gif
deleted file mode 100755
index 884e15bc..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/fr/directories.gif
+++ /dev/null
Binary files differ
diff --git a/demos/blog-tutorial/protected/pages/Day1/fr/directories2.gif b/demos/blog-tutorial/protected/pages/Day1/fr/directories2.gif
deleted file mode 100755
index edf264d0..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/fr/directories2.gif
+++ /dev/null
Binary files differ
diff --git a/demos/blog-tutorial/protected/pages/Day1/fr/directories3.gif b/demos/blog-tutorial/protected/pages/Day1/fr/directories3.gif
deleted file mode 100755
index 3451935f..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/fr/directories3.gif
+++ /dev/null
Binary files differ
diff --git a/demos/blog-tutorial/protected/pages/Day1/fr/output.gif b/demos/blog-tutorial/protected/pages/Day1/fr/output.gif
deleted file mode 100755
index 9ad2bfb8..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/fr/output.gif
+++ /dev/null
Binary files differ
diff --git a/demos/blog-tutorial/protected/pages/Day1/id/CreateContact.page b/demos/blog-tutorial/protected/pages/Day1/id/CreateContact.page
deleted file mode 100755
index caee30d0..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/id/CreateContact.page
+++ /dev/null
@@ -1,203 +0,0 @@
-<com:TContent ID="Main">
-
-<h1>Membuat Halaman Kontak</h1>
-
-<p>
-Kita telah membuat halaman standar <tt>Home.page</tt> menggunakan <a href="http://www.pradosoft.com/demos/quickstart/?page=GettingStarted.CommandLine">piranti baris perintah PRADO</a>. Halaman relatif statis karena ia tidak berisi konten dinamis. Dalam bagian ini, kita akan membuat halaman interaktif bernama <tt>Contact</tt>.
-</p>
-
-<p>
-Kegunaan dari halaman <tt>Contact</tt> adalah untuk mengumpulkan umpan balik dari para pengguna sistem blog kita. Untuk melaksanakan tujuan ini, kita merencanakan untuk menyajikan para pengguna dengan sebuah formulir umpan balik yang harus diisi. Dalam formulir ini, kita akan mengharuskan para pengguna untuk menyediakan namanya, alamat email, dan konten umpan balik. Setelah formulir diisi dan dikirimkan, email yang berisi umpan balik akan dikirimkan ke administrator situs.
-</p>
-
-<p>
-Untuk membuat halaman <tt>Contact</tt>, kita memerluka dua file di bawah direktori <tt>pages</tt>: file template halaman <tt>Contact.page</tt> dan file kelas halaman <tt>Contact.php</tt>.
-</p>
-
-<img src="<%~ directories2.gif %>" class="output" />
-
-<com:InfoBox>
-<a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Pages">Halaman</a> harus berupa file <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">template</a> (berekstensi <tt>.page</tt>) atau file kelas, atau keduanya:
-</p>
-
-<ul>
-<li>Hanya template-halaman yang biasanya berupa sebuah halaman sengan konten statis, seperti homepage yang sudah kita buat;</li>
-<li>Hanya file kelas halaman yang menghasilkan konten murni berdasarkan eksekusi metode kelas;</li>
-<li>Sebuah halaman dengan template dan kelasnya mengkombinasikan keunggulan keduanya: ia menggunakan template untuk memudahkan mengatur tata letak halaman dan menggunakan kelas untuk menyertakan logika yang menghasilkan konten dinamis.</li>
-</ul>
-</com:InfoBox>
-
-
-<h2>Membuat Template Halaman</h2>
-
-<p>
-Pertama kita membuat file template untuk halaman <tt>Contact</tt>.
-</p>
-
-<p>
-Kita menggunakan template untuk menghatur tata letak penyajian terhadap formulir umpan balik. Dalam template, kita menggunakan <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.TextBox">kotak teks</a> untuk mengumpulkan nama pengguna, email dan umpan balik. Dan kita menggunakan <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.Validation">validator</a> guna memastikan bahwa pengguna menyediakan semua informasi ini sebelum mengirimkan formulir umpan balik. Seluruh template adalah sebagai berikut,
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-<html>
-<head><title>My Blog - Contact</title></head>
-<body>
-<h1>Contact</h1>
-<p>Please fill out the following form to let me know your feedback on my blog. Thanks!</p>
-
-&lt;com:TForm>
-
-<span>Your Name:</span>
-&lt;com:TRequiredFieldValidator ControlToValidate="Name"
- ErrorMessage="Please provide your name."
- Display="Dynamic" />
-<br/>
-&lt;com:TTextBox ID="Name" />
-
-<br/>
-<span>Your Email:</span>
-&lt;com:TRequiredFieldValidator ControlToValidate="Email"
- ErrorMessage="Please provide your email address."
- Display="Dynamic" />
-&lt;com:TEmailAddressValidator ControlToValidate="Email"
- ErrorMessage="You entered an invalid email address."
- Display="Dynamic" />
-<br/>
-&lt;com:TTextBox ID="Email" />
-
-<br/>
-<span>Feedback:</span>
-&lt;com:TRequiredFieldValidator ControlToValidate="Feedback"
- ErrorMessage="Please provide your feedback."
- Display="Dynamic" />
-<br/>
-&lt;com:TTextBox ID="Feedback"
- TextMode="MultiLine"
- Rows="10"
- Columns="40" />
-
-<br/>
-&lt;com:TButton Text="Submit" OnClick="submitButtonClicked" />
-
-&lt;/com:TForm>
-
-</body>
-</html>
-</com:TTextHighlighter>
-
-<p>
-Seperti kita lihat bahwa template terlihat sangat mirip dengan halaman HTML normal. Perbedaan utamanya adalah bahwa template berisi beberapa tag <tt>&lt;com:&gt;</tt>. Setap tag <tt>&lt;com:&gt;</tt> merujuk ke sebuah <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Controls">kontrol</a> yang propertinya diinisialisasi dengan pasangan nama-nilai dalam tag. Sebagai contoh, <tt>&lt;com:TButton&gt;</tt> merujuk ke kontrol <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.Button">TButton</a> guna menampilkan sebuah tombol di mana pengguna dapat di klik pengguna untuk mengirimkan formulir umpan balik. Untuk sintaks lengkap template, silahkan rujuk <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">Tutorial Cepat</a>.
-</p>
-
-<com:InfoBox>
-PRADO menyediakan kontrol untuk setiap tipe input HTML. Sebagai contoh, <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.TextBox">TTextBox</a> menampilkan field input teks, <a href="http://www.pradosoft.com/demos/quickstart/?page=Controls.List">TDropDownList</a> menampilkan kotak kombo. Setiap kontrol adalah sebuah komponen yang dapat diakses dalam kode sebagai obyek dengan properti yang bisa dikonfigurasi.
-</com:InfoBox>
-
-<p>
-Selain kontrol <tt>TTextBox</tt>, template juga menggunakan banyak kontrol validator yang memastikan input pengguna memuaskan aturan validasi spesifik. Sebagai contoh, untuk memastikan alamat email sah yang dilengkapi, kita menggunakan dua validator untuk memvalidasi kotak teks "email", seperti ditampilkan dalam kode berikut:
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-<span>Your Email:</span>
-&lt;com:TRequiredFieldValidator
- ControlToValidate="Email"
- ErrorMessage="Please provide your email address."
- Display="Dynamic" />
-&lt;com:TEmailAddressValidator
- ControlToValidate="Email"
- ErrorMessage="You entered an invalid email address."
- Display="Dynamic" />
-<br/>
-&lt;com:TTextBox ID="Email" />
-<br/>
-</com:TTextHighlighter>
-
-<p>
-Di bawah ini kita meringkas kontrol yang dipakai dalam template halaman:
-</p>
-
-<ul>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TForm">TForm</a> menampilkan sebuah formulir HTML. Setiap kontrol input harus dikurung di dalamnya. Dan yang terpenting, paling banyak satu <tt>TForm</tt> boleh muncul dalam sebuah halaman.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TTextBox">TTextBox</a> menampilkan kotak teks untuk mengumpulkan input teks pengguna.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TRequiredFieldValidator">TRequiredFieldValidator</a> memastikan bahwa kotak teks terkait tidak kosong saat umpan balik dikirimkan.</li>
-<li><a href="http://www.pradosoft.com/docs/classdoc/TEmailAddressValidator">TEmailAddressValidator</a> memastikan bahwa kotak teks berisi alamat email yang <i>benar</i> saat umpan balik dikirimkan.</li>
-</ul>
-
-<com:TipBox>
-Menulis template dengan editor teks biasa dapat membosankan dan tidak intuitif untuk para desainer. Untuk memudahkan situasi ini, PRADO telah menyertakan dalam rilis ekstensi Adobe Dreamweaver yang mendukung pelengkapan-otomatis tag PRADO (misalnya menyertakan nama kontrol, nama properti, nama event, dll) dalam Dreamweaver.
-</com:TipBox>
-
-
-<h2>Membuat Kelas Halaman</h2>
-
-<p>
-Sekarang kita membuat kelas halaman <tt>Contact.php</tt>. Alasan kita membutuhkan kelas halaman adalah karena kita perlu merespon umpan balik yang dikirimkan oleh pengguna.
-
-<p>
-Perhatikan dalam template kita mempunyai baris berikut. Template secara esensi menyatakan bahwa saat pengguna mengklik tombol, ia harus memanggil metode <tt>submitButtonClicked()</tt>. Di sini <tt>OnClick</tt> adalah nama dari event yang diklik pengguna, dan metode harus didefinisikan dalam kelas halaman.
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
- &lt;com:TButton Text="Submit" OnClick="submitButtonClicked" />
-</com:TTextHighlighter>
-
-<p>
-Selanjutnya kita menuliskan kelas halaman seperti berikut:
-</p>
-
-<com:TTextHighlighter CssClass="source">
-<?php
-class Contact extends TPage
-{
- /**
- * Pengendali event untuk event OnClick pada tombol submit.
- * @param TButton tombol yang memicu event
- * @param TEventParameter parameter event (null di sini)
- */
- public function submitButtonClicked($sender, $param)
- {
- if ($this->IsValid) // memeriksa apakan validasi input berhasil
- {
- // mendapatkan nama pengguna, email, umpan balik dari kotak teks
- $name = $this->Name->Text;
- $email = $this->Email->Text;
- $feedback = $this->Feedback->Text;
-
- // mengirimkan email ke administrator dengan informasi di atas
- $this->mailFeedback($name, $email, $feedback);
- }
- }
-
- protected function mailFeedback($name, $email, $feedback)
- {
- // implementasi pengiriman email umpan balik
- }
-}
-</com:TTextHighlighter>
-
-<p>
-Kode di atas sebagian besar cukup jelas. Kenyataannya, kami hanya menampilkan skema pemrograman pengendalian-event. Dalam pengendali event <tt>submitButtonClicked()</tt>, kita mengambil input pengguna. Sebagai contoh, <tt>$this->Name->Text</tt> mengembalikan nilai properti <tt>Text</tt> dari kontrol <tt>Name</tt> yang merupakan kotak teks yang mengumpulkan informasi nama pengguna.
-</p>
-
-<com:InfoBox>
-Nama kelas halaman harus sama seperti nama file. Ini juga persyaratan untuk penulisan komponen kelas PRADO.
-</com:InfoBox>
-
-
-<h2>Pengujian</h2>
-
-<p>
-<tt>Contact</tt> yang baru saja kita buat dapat kita uji dengan URL <tt>http://hostname/blog/index.php?page=Contact</tt>. Jika kita mengklik pada tombol submit tanpa memasukan informasi apapun, kita akan melihat pesan kesalahan muncil di sebelah kotak teks terkait. Jika kita memasukan semua informasi yang diperlukan, metode <tt>mailFeedback()</tt> akan dipanggil.
-</p>
-
-<img src="<%~ output.gif %>" class="output" />
-
-<p>
-Peningkatan berikutnya terhadap halaman ini adalah untuk menampilkan beberapa pesan konfirmasi pada halaman setelah pengguna mengirimkan umpan balik. Dan kemungkinan, browser akan dialihkan ke halaman lain jika pengiriman berhasil. Kita akan membiarkan tugas ini bagi para pembaca kita.
-</p>
-
-<com:InfoBox>
-Setiap validator mewakili aturan validasi. Satu kontrol input dapat dikaitkan dengan satu atau multipel validator. Validator melakukan validasi pada sisi klien dan sisi server. Pada sisi klien, yaitu browser, validasi dikerjakan dmenggunakan javascript; pada sisi server, validasi dikerjakan dengan menggunakan kode PHP. Validasi sisi-klien dapat dimatikan, sementara validasi sisi-server tidak bisa. Ini memastikan input pengguna selalu diperiksa oleh aturan validasi yang dietapkan.
-</com:InfoBox>
-
-</com:TContent> \ No newline at end of file
diff --git a/demos/blog-tutorial/protected/pages/Day1/id/Setup.page b/demos/blog-tutorial/protected/pages/Day1/id/Setup.page
deleted file mode 100755
index 45ae8cf5..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/id/Setup.page
+++ /dev/null
@@ -1,163 +0,0 @@
-<com:TContent ID="Main">
-
-<h1>Persiapan Awal</h1>
-
-<p>
-Kita mulai dengan menyiapkan direktori dan file yang diperlukan oleh kebanyakan aplikasi PRADO. Kita menggunakan <a href="http://www.pradosoft.com/demos/quickstart/?page=GettingStarted.CommandLine">piranti baris perintah PRADO</a> untuk melaksanakan tujuan ini.
-</p>
-
-<p>
-Anggap <tt>blog</tt> adalah nama direktori untuk menampung seluruh sistem blog, dan URL untuk mengakses folder ini adalah <tt>http://hostname/blog/</tt> (ganti <tt>hostname</tt> dengan nama host sebenarnya).
-</p>
-
-<p>
-Di bawah direktori <tt>blog</tt>, kita menjalankan <a href="http://www.pradosoft.com/demos/quickstart/?page=GettingStarted.CommandLine">piranti baris perintah PRADO</a> dengan perintah berikut (ganti <tt>path/ke</tt> dengan path sebenarnya ke instalasi kerangka kerja PRADO):
-</p>
-<com:TTextHighlighter CssClass="source cli">
-php path/ke/prado-cli.php -c .
-</com:TTextHighlighter>
-
-<p>
-Menjalankan perintah di atas akan membuat direktori dan file berikut:
-</p>
-
-<img src="<%~ directories.gif %>" class="output" />
-
-<p>
-Sekarang kita mempunyai kerangka aplikasi PRADO yang dapat diakses melalui URL <tt>http://hostname/blog/index.php</tt> yang menampilkan halaman Web dengan tulisan "Welcome to PRADO".
-</p>
-
-<p>
-Sangat bermanfaat mempelajari lebih rinci mengenai direktori dan file yang baru saja kita buat.
-</p>
-
-
-<h2>File Awal</h2>
-
-<h3>Naskah Entri</h3>
-
-<p>
-Setiap aplikasi PRADO mempunyai naskah entri, sering dinamakan sebagai <tt>index.php</tt>. Dalam kebanyakan kasus, ia hanya naskah PHP yang secara langsung dapat diakses oleh pengguna Web. Ini mengurangi resiko terhadap ijin para pengguna Web untuk menjalankan naskah yang tidak diinginkan pada server.
-</p>
-
-<p>
-Kegunaan utama dari naskah entri adalah untuk mengawali aplikasi PRADO dan membiarkan ia menangani permintaan pengguna. Naskah entri biasanya berisi pernyataan PHP berikut,
-</p>
-
-<com:TTextHighlighter CssClass="source">
-<?php
-// sertakan prado.php yang berisi kelas PRADO dasar
-require_once('path/to/prado.php');
-// buat turunan aplikasi PRADO
-$application = new TApplication;
-// jalankan aplikasi dan tangani permintaan pengguna
-$application->run();
-</com:TTextHighlighter>
-
-<com:InfoBox>
-Nama naskah entri tidak harus <tt>index.php</tt>. Ia dapat berupa nama apa saja selama server Web dapat mengatakan bahwa naskah adalah naskah PHP 5. Sebagai contoh, pada beberapa lingkungan hosting berbagi, seseorang mungkin perlu untuk menamai naskah sebagai <tt>index.php5</tt> agar ia bisa ditangani dengan benar oleh server the Web.
-</com:InfoBox>
-
-<h3>Konfigurasi Aplikasi</h3>
-<p>
-File XML <i>opsional</i> <tt>application.xml</tt> berisi <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.AppConfig">konfigurasi aplikasi</a>. Kegunaan utamanya adalah untuk mengkustomisasi dalam cara yang bisa mengkonfigurasi turunan aplikasi yang dibuat dalam naskah entri. Sevagai contoh, kita dapat menghidupkan fitur <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.Logging">pencatatan</a> untuk sistem blog kita dengan bantuan konfigurasi aplikasi.
-</p>
-
-<p>
-File <tt>application.xml</tt> yang sekarang kita miliki hampir kosong. Sebenarnya kita dapat menghapusnya dengan aman karena aplikasi pada saat ini hanya menggunakan seting standar PRADO. Seiring kita ke depan, kita akan merujuk kembali secara kontan dan menampilkan bagaimana untuk mengkonfigurasi aplikasi kita dalam <tt>application.xml</tt>.
-</p>
-
-
-<h3>Homepage</h3>
-
-<p>
-Homepage (juga disebut halaman standar) <tt>Home.page</tt> adalah satu-satunya <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Pages">halaman</a> yang dibuat oleh piranti baris perintah PRADO. Berisi konten dalam file ini yang muncul dalam browser saat mengunjungi URL <tt>http://hostname/blog/index.php</tt>.
-</p>
-
-<p>
-Konen dalam file <tt>Home.page</tt> menggunakan <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">format template PRADO</a>, yang kebanyakan mirip HTML dengan beberapa tag spesifik-PRADO. Sebagai contoh, dalam <tt>Home.page</tt> kita melihat konten murni HTML berikut:
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-<html>
-<head>
- <title>Welcome to PRADO</title>
-</head>
-<body>
-<h1>Welcome to PRADO!</h1>
-</body>
-</html>
-</com:TTextHighlighter>
-
-
-<h2>Direktori Awal</h2>
-
-<h3>Direktori <tt>protected</tt></h3>
-
-<p>
-Direktori <tt>protected</tt>, juga dikenal sebagai <i>path basis aplikasi</i>, adalah direktori akar yang menampung halaman, template, konfigurasi, data, dll. Nama <tt>protected</tt> menunjukan bahwa direktori ini harus disembunyikan dari para pengguna Web, karena file di bawah direktori ini berisi data sensitif.
-</p>
-
-<p>
-Server Web berbeda mempunyai berbeda terhadap "melindungi" direktori. Untuk sever httpd Apache, cara termudah adalah untuk menempatkan file bernama <tt>.htaccess</tt> di bawah direktori dengan isi <tt>deny from all</tt>.
-</p>
-
-
-<h3>Direktori <tt>protected/runtime</tt> dan <tt>assets</tt></h3>
-
-<p>
-Direktori <tt>protected/runtime</tt> dan <tt>assets</tt> adalah dua direktori yang harus disetel bisa ditulisi oleh proses server Web. Direktori <tt>runtime</tt> menyimpan data sensitif (misalnya konfigurasi aplikasi yang diuraikan) yang dibuat saat menjalankan aplikasi PRADO, karena direktori <tt>assets</tt> menyimpan sumber daya yang dipublikasikan (misalnya file gambar, file javascript).
-</p>
-
-<com:InfoBox>
-Aman untuk menghapus file dan direktori di bawah <tt>protected/runtime</tt> dan <tt>assets</tt>. Sebenarnya para pengembang direkomendasikan untuk melakukan pekerjaan pembersihan ini ketika mereka memutakhirkan instalasi PRADO.
-</com:InfoBox>
-
-
-<h3>Direktori <tt>pages</tt></h3>
-
-<p>
-Direktori <tt>pages</tt> adalah <i>akar direktori halaman</i> yang menampung seluruh <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Pages">halaman</a> dalam sebuah aplikasi PRADO. Ini mirip analogi terhadap direktori <tt>htdocs</tt> pada server Web httpd Apache.
-</p>
-
-<p>
-Kita sudah melihat bagaimana cara mengakses homepage. Untuk mengakses halaman yang ditempatkan di bawah <tt>pages</tt>, menggunakan URL <tt>http://hostname/blog/index.php?page=path.ke.NamaHalaman</tt>. Berdasarkan URL ini, PRADO akan melihar halaman bernama <tt>NamaHalaman</tt> di bawah direktori <tt>pages/path/ke</tt>. URL yang kita pakai untuk mengakses homepage sebelumnya sama dengan <tt>http://hostname/blog/index.php?page=Home</tt>.
-</p>
-
-
-<h2>Kustomisasi</h2>
-
-<p>
-Dimungkinkan untuk mengkustomisasi nama dan lokasi terhadap file dan direktori yang dijelaskan di atas.
-</p>
-
-<p>
-Sebagai contoh, untuk meningkatkan keamanan, seseorang mungkin ingin memindahkan seluruh direktori <tt>protected</tt> ke tempat lain yang bukan folder Web. Untuk melakukannya, gunakan pernyataan PHP berikut untuk membuat turunan aplikasi dalam naskah entri:
-</p>
-
-<com:TTextHighlighter CssClass="source">
-$application = new TApplication( 'path/ke/protected' );
-</com:TTextHighlighter>
-
-<p>
-Untuk membuat lokasi akar direktori halaman dan mengubah nama homepage, seseorang dapat menetapkannya dalam konfigurasi aplikasi <tt>application.xml</tt> sebagai berikut:
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="xml">
-<?xml version="1.0" encoding="utf-8"?>
-<application id="blog" mode="Debug">
- <services>
- <service id="page"
- class="TPageService"
- BasePath="path.to.pages"
- DefaultPage="NewHome"
- />
- </services>
-</application>
-</com:TTextHighlighter>
-
-<p>
-Setelah Anda mempelajari lebih jauh mengenai PRADO, Anda akan melihat bahwa PRADO adalah kerangka kerja fleksibel yang membolehkan Anda untuk mengkustomisasi hampir setiap aspeknya. Kami akan menjelaskan lebih lanjut teknik kustomisasi setelah kita melanjutkan tutorial kita.
-</p>
-
-</com:TContent> \ No newline at end of file
diff --git a/demos/blog-tutorial/protected/pages/Day1/id/ShareLayout.page b/demos/blog-tutorial/protected/pages/Day1/id/ShareLayout.page
deleted file mode 100755
index 0c40181b..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/id/ShareLayout.page
+++ /dev/null
@@ -1,178 +0,0 @@
-<com:TContent ID="Main">
-
-<h1>Berbagi Tata Letak Umum</h1>
-
-<p>
-Dalam bagian ini, kita akan menggunakan fitur <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.MasterContent">master/content</a> PRADO untuk membagi tata letak umum diantara halaman. Tata letak merujuk ke area yang sama atay sebagian besar sama untuk setelan halaman. Sebagai contoh, dalam sistem blog kita, semua halaman akan berbagi header yang sama, footer dan bar-samping yang berisi link jalan pintas. Implementasi langsung adalah untuk mengulang tata letak umum dalam setiap halaman. Akan tetapi, pendekatan ini adalah cenderung salah dan sulit untuk dipelihara. Fitur <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.MasterContent">master/content</a> membolehkan kita untuk menggunakan tata letak umum sebagai sebuah kontrol yang memusatkan logika dan penyajian tata letak umum untuk setiap halaman.
-</p>
-
-<com:InfoBox>
-Ini juga memungkinkan untuk membagi tata letak umum melalui <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">penyertaan template</a>, yang mirip inklusi file PHP. Akibat dari penyertaan inklusi template ini adalah bahwa ia tidak berdiri sendiri dan tidak membawa kelas untuk mengisi logika untuk tata letak umum.
-</com:InfoBox>
-
-
-<h2>Membuat Kontrol Master</h2>
-
-<p>
-Sekarang kita membuat kontrol master <tt>MainLayout</tt> untuk mewakili tata letak umum berbagi dengan halaman blog kita. Kontrol <tt>MainLayout</tt> adalah kontrol template yang diperluas dari <tt>TTemplateControl</tt>. Ini mememerlukan file template <tt>MainLayout.tpl</tt> dan sebuah file kelas <tt>MainLayout.php</tt> yang ditempatkan di bawah direktori yang sama. Guna menjembatani pemeliharaan, kita membuat direktori baru <tt>protected/layouts</tt> untuk menampungnya.
-</p>
-
-<img src="<%~ directories3.gif %>" class="output" />
-
-<p>
-Untuk saat ini, <tt>MainLayout</tt> hanya berisi header dan footer sederhana, seperti ditampilkan berikut ini. Kedepan, kita akan menambahkan bar-samping. Para pembaca juga disarankan untuk meningkatkan tata letak dengan fitur yang lainnya.
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-<html>
-&lt;com:THead />
-<body>
-&lt;com:TForm>
-<div id="page">
-
-<div id="header">
-<h1>My PRADO Blog</h1>
-</div>
-
-<div id="main">
-&lt;com:TContentPlaceHolder ID="Main" />
-</div>
-
-<div id="footer">
-&lt;%= PRADO::poweredByPrado() %>
-</div>
-
-</div>
-&lt;/com:TForm>
-</body>
-</html>
-</com:TTextHighlighter>
-
-<p>
-Contoh di atas memperlihatkan konten dalam file template <tt>MainLayout.tpl</tt>. Tiga tag baru ini dipakai:
-</p>
-<ul>
-<li><tt>&lt;com:TContentPlaceHolder&gt;</tt> mewakili kontrol <a href="http://www.pradosoft.com/docs/classdoc/TContentPlaceHolder">TContentPlaceHolder</a>. Ia menyimpan tempat dalam template di mana konten akan ditempatkan. Di sini, konten datang dari halaman yang menggunakan kontrol master ini.</li>
-<li><tt>&lt;com:THead&gt;</tt> mewakili kontrol <a href="http://www.pradosoft.com/docs/classdoc/THead">THead</a> yang menyajikan tag &lt;head&gt; dalam HTML. Ia membolehkan PRADO untuk memanipulasi tag &lt;head&gt; sebagai sebuah komponen (misalnya setelan judul halaman, menambahkan gaya CSS kustom.)</li>
-<li><tt>&lt;%= %&gt;</tt> adalah sebuah <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates2#et">tag ekspresi</a>. Ia menampilkan hasil evaluasi daru ekspresi yang dikurung di tempat di mana ia muncul.</li>
-</ul>
-
-<p>
-File kelas <tt>MainLayout.php</tt> sangat sederhana:
-</p>
-
-<com:TTextHighlighter CssClass="source">
-<?php
-class MainLayout extends TTemplateControl
-{
-}
-</com:TTextHighlighter>
-
-<com:InfoBox>
-Nama ekstensi file untuk template halaman <tt>.page</tt>, sementara untuk template non-halaman yaitu <tt>.tpl</tt>. Ini untuk membedakan halaman dari kontrol lain. Keduanya menggunakan <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1">sintaks template</a> yang sama. Untuk halaman, file kelasnya adalah opsional (standarnya <tt>TPage</tt>), sementara untuk kontrol non-halaman, file kelasnya adalah mandatori. Mirip dengan Java, nama file kelas harus sama seperti nama kelas. Harap berhati-hati mengenai sensitifitas-huruf pada sistem Linux/Unix.
-</com:InfoBox>
-
-
-<h2>Menggunakan Kontrol Master</h2>
-<p>
-Untuk menggunakan kontrol master yang baru saja dibuat, kita akan memodifikasi <tt>Home.page</tt> dan <tt>Contact.page</tt>. Dalam keadaan tertentu, kita perlu untuk menghapus header dan footer darinya karena kontrol master akan bertanggung jawab untuk menampilkannya; dan kita perlu memberitahu dua halaman di mana mereka harus menggunakan <tt>MainLayout</tt> sebagai masternya.
-</p>
-
-<p>
-Kode berikut memperlihatkan konten dalam <tt>Contact.page</tt> setelah perubahan:
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="prado">
-&lt;%@ MasterClass="Application.layouts.MainLayout" Title="My Blog - Contact" %>
-
-&lt;com:TContent ID="Main">
-
-<h1>Contact</h1>
-<p>Please fill out the following form to let me know your feedback on my blog. Thanks!</p>
-
-...kotak teks dan validator untuk nama pengguna...
-
-...kotak teks dan validator untuk emali pengguna...
-
-...kotak teks dan validator untuk konten umpan balik...
-
-&lt;com:TButton Text="Submit" OnClick="submitButtonClicked" />
-
-&lt;/com:TContent>
-</com:TTextHighlighter>
-
-<p>
-Konten yang dikurung di dalam tag <tt>&lt;com:TContent&gt;</tt> tag akan disisipkan ke dalam tempat yang disiapkan oleh <tt>&lt;com:TContentPlaceHolder&gt;</tt> pada template master.
-</p>
-
-<com:InfoBox>
-Dimungkinkan untuk memiliki multipel <tt>TContentPlaceHolder</tt> dalam sebuah template master dan multipel <tt>TContent</tt> dakan tenokate konten. Mereka saling dipasangkan dengan nilai <tt>ID</tt>-nya. Juga dimungkinkan untuk membuat template konten menjadi master template konten lainnya dengan menempatkan <tt>TContentPlaceHolder</tt> di pembentuk. Ini disebut <i>master berulang</i>.
-</com:InfoBox>
-
-<p>
-Selain <tt>&lt;com:TContent&gt;</tt>, kita juga melihat tag baru lain <tt>&lt;%@ %&gt;</tt> di atas, yang disebut <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.Templates1#tct">tag kontrol template</a>. Ia berisi pasangan nama-nilai yang dipakai untuk menginisialisasi properti terkait bagi pemilik template, yaitu, halaman <tt>Contact</tt>.
-</p>
-
-<p>
-Dengan menyetel properti <tt>MasterClass</tt> sebagai <tt>Application.layouts.MainLayout</tt>, kita menginstruksikan halaman <tt>Contact</tt> untuk menggunakan <tt>MainLayout</tt> sebagai masternya. Di sini, kita sedang menggunakan <a href="http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Components">format namespace</a> untuk merujuk ke kelas <tt>MainLayout</tt>.
-</p>
-
-<com:InfoBox>
-Format namespace sebagian besar dipakai dalam pemrograman PRADO. Dipakai bersama dengan <a href="http://www.pradosoft.com/demos/quickstart/index.php?page=Fundamentals.Components">alias path</a>. PRADO mendefinisikan dua alias path: <tt>System</tt> merujuk ke direktori <tt>framework</tt> pada instalasi PRADO, dan <tt>Application</tt> merujuk ke direktori <tt>protected</tt>. Namespace <tt>Application.layouts.MainLayout</tt> selanjutnya bisa diterjemahkan sebagai <tt>protected/layouts/MainLayout</tt> yang tepatnya adalah nama file (tanpa ekstensi <tt>.php</tt>) untuk kelas <tt>MainLayout</tt>.
-</com:InfoBox>
-
-
-<h2>Cara Alternatif Menetapkan Master</h2>
-
-<p>
-Ada beberapa cara tambahan untuk menetapkan kelas master untuk sebuah halaman.
-</p>
-
-<p>
-Kita dapat menetapkan master dalam kode seperti berikut untuk menghidupkan perubahan dinamis terhadap tata letak:
-</p>
-
-<com:TTextHighlighter CssClass="source">
-<?php
-class Contact extends TPage
-{
- public function onPreInit($param)
- {
- parent::onPreInit($param);
- $this->MasterClass='Path.To.NewLayout';
- }
-
- // ...
-}
-</com:TTextHighlighter>
-
-<p>
-Dalam contoh di atas, kita menetapkan <tt>MasterClass</tt> dalam metode <tt>onPreInit()</tt> yang diturunkan dari <tt>TPage</tt>. Metode dipanggil oleh PRADO langsung setelah turunan halaman dibuat. Selanjutnya kita dapat menentukan secara dinamis tata letak yang dipakai saat halaman diminta. Sebagai contoh, ketika halaman yang diminta oleh pengguna terdaftar kita memakai tata letak A, dan tata letak B dipakai jika pengguna tamu yang meminta halaman.
-</p>
-
-<p>
-Kita juga dapat menetapkan master dalam <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.AppConfig">konfigurasi aplikasi</a> atau <a href="http://www.pradosoft.com/demos/quickstart/?page=Configurations.PageConfig">konfigurasi halaman</a>. Kode berikut memperlihatkan konfigurasi aplikasi yang dimutakhirkan untuk sistem blog kita:
-</p>
-
-<com:TTextHighlighter CssClass="source" Language="xml">
-<?xml version="1.0" encoding="utf-8"?>
-<application id="blog" mode="Debug">
- <!-- konfigurasi untuk layanan yang tersedia -->
- <services>
- <service id="page" class="TPageService" DefaultPage="Home">
- <!-- initial properties set for all pages -->
- <pages MasterClass="Application.layouts.MainLayout" />
- </service>
- </services>
-</application>
-</com:TTextHighlighter>
-
-<p>
-Dengan melakukan demikian, kita menghindari kesulitan pada penetapan master dalam setiap template halaman. Jika kita memutuskan untuk menggunakan master yang berbeda untuk halaman, kita hanya perlu mengubah konfigurasi aplikasi. Untuk alasan ini, dalam sistem blog kita, kita akan menggunakan pendekatan untuk menetapkan master.
-</p>
-
-<com:InfoBox>
-Ada urutan yang menentukan master yang mana yang sebenarnya diterapkan ketika ia ditetapkan dalam tempat multipel. Dalam keadaan tertentu, <tt>onPreInit()</tt> diambil lebih dulu di atas template halaman di atas konfigurasi aplikasi/halaman. Oleh karena itu, jika kita menetapkan <tt>MainLayout</tt> dalam konfigurasi aplikasi/halaman dan kita menetapkan <tt>SpecialLayout</tt> dalam <tt>Contact.page</tt>, master yang efektif adalah yang terakhir.
-</com:InfoBox>
-
-</com:TContent> \ No newline at end of file
diff --git a/demos/blog-tutorial/protected/pages/Day1/id/directories.gif b/demos/blog-tutorial/protected/pages/Day1/id/directories.gif
deleted file mode 100755
index 884e15bc..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/id/directories.gif
+++ /dev/null
Binary files differ
diff --git a/demos/blog-tutorial/protected/pages/Day1/id/directories2.gif b/demos/blog-tutorial/protected/pages/Day1/id/directories2.gif
deleted file mode 100755
index edf264d0..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/id/directories2.gif
+++ /dev/null
Binary files differ
diff --git a/demos/blog-tutorial/protected/pages/Day1/id/directories3.gif b/demos/blog-tutorial/protected/pages/Day1/id/directories3.gif
deleted file mode 100755
index 3451935f..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/id/directories3.gif
+++ /dev/null
Binary files differ
diff --git a/demos/blog-tutorial/protected/pages/Day1/id/output.gif b/demos/blog-tutorial/protected/pages/Day1/id/output.gif
deleted file mode 100755
index 9ad2bfb8..00000000
--- a/demos/blog-tutorial/protected/pages/Day1/id/output.gif
+++ /dev/null
Binary files differ