diff options
author | ueyama <> | 2007-06-03 16:54:35 +0000 |
---|---|---|
committer | ueyama <> | 2007-06-03 16:54:35 +0000 |
commit | ed02f2fbc9680d5fba0a2b10f9c64aad5d1ecb47 (patch) | |
tree | 0f2636d6f63404162d99ff453ee5935535056695 | |
parent | 615eb561dfc43bd11ba620c9465e18ac15e22131 (diff) |
Tranlates for Japanese by Shinya.K
27 files changed, 1059 insertions, 1 deletions
diff --git a/.gitattributes b/.gitattributes index 6af31dfd..72280b65 100644 --- a/.gitattributes +++ b/.gitattributes @@ -977,6 +977,9 @@ demos/quickstart/protected/controls/fr/RunBar.tpl -text demos/quickstart/protected/controls/fr/SampleLayout.tpl -text demos/quickstart/protected/controls/fr/SearchBox.tpl -text demos/quickstart/protected/controls/fr/TopicList.tpl -text +demos/quickstart/protected/controls/ja/Layout.tpl -text +demos/quickstart/protected/controls/ja/SearchBox.tpl -text +demos/quickstart/protected/controls/ja/TopicList.tpl -text demos/quickstart/protected/controls/pl/TopicList.tpl -text demos/quickstart/protected/controls/zh/TopicList.tpl -text demos/quickstart/protected/index/Zend/Exception.php -text @@ -1292,6 +1295,19 @@ demos/quickstart/protected/pages/Fundamentals/applifecycles.vsd -text demos/quickstart/protected/pages/Fundamentals/classtree.gif -text demos/quickstart/protected/pages/Fundamentals/classtree.vsd -text demos/quickstart/protected/pages/Fundamentals/directory.gif -text +demos/quickstart/protected/pages/Fundamentals/ja/Applications.page -text +demos/quickstart/protected/pages/Fundamentals/ja/Architecture.page -text +demos/quickstart/protected/pages/Fundamentals/ja/Components.page -text +demos/quickstart/protected/pages/Fundamentals/ja/Controls.page -text +demos/quickstart/protected/pages/Fundamentals/ja/Hangman.page -text +demos/quickstart/protected/pages/Fundamentals/ja/Modules.page -text +demos/quickstart/protected/pages/Fundamentals/ja/Pages.page -text +demos/quickstart/protected/pages/Fundamentals/ja/Services.page -text +demos/quickstart/protected/pages/Fundamentals/ja/applifecycles.gif -text +demos/quickstart/protected/pages/Fundamentals/ja/classtree.gif -text +demos/quickstart/protected/pages/Fundamentals/ja/directory.gif -text +demos/quickstart/protected/pages/Fundamentals/ja/lifecycles.gif -text +demos/quickstart/protected/pages/Fundamentals/ja/objectdiagram.gif -text demos/quickstart/protected/pages/Fundamentals/lifecycles.gif -text demos/quickstart/protected/pages/Fundamentals/lifecycles.vsd -text demos/quickstart/protected/pages/Fundamentals/objectdiagram.gif -text @@ -1313,6 +1329,15 @@ demos/quickstart/protected/pages/GettingStarted/fr/NewFeatures.page -text demos/quickstart/protected/pages/GettingStarted/fr/Upgrading.page -text demos/quickstart/protected/pages/GettingStarted/fr/directory.gif -text demos/quickstart/protected/pages/GettingStarted/fr/sequence.gif -text +demos/quickstart/protected/pages/GettingStarted/ja/AboutPrado.page -text +demos/quickstart/protected/pages/GettingStarted/ja/CommandLine.page -text +demos/quickstart/protected/pages/GettingStarted/ja/HelloWorld.page -text +demos/quickstart/protected/pages/GettingStarted/ja/Installation.page -text +demos/quickstart/protected/pages/GettingStarted/ja/Introduction.page -text +demos/quickstart/protected/pages/GettingStarted/ja/NewFeatures.page -text +demos/quickstart/protected/pages/GettingStarted/ja/Upgrading.page -text +demos/quickstart/protected/pages/GettingStarted/ja/directory.gif -text +demos/quickstart/protected/pages/GettingStarted/ja/sequence.gif -text demos/quickstart/protected/pages/GettingStarted/pl/AboutPrado.page -text demos/quickstart/protected/pages/GettingStarted/pl/CommandLine.page -text demos/quickstart/protected/pages/GettingStarted/pl/HelloWorld.page -text diff --git a/demos/quickstart/protected/application.xml b/demos/quickstart/protected/application.xml index bccb81b2..590977ac 100644 --- a/demos/quickstart/protected/application.xml +++ b/demos/quickstart/protected/application.xml @@ -27,7 +27,7 @@ </services>
<parameters>
- <parameter id="languages" value="('en'=>'English', 'fr'=>'Français', 'zh' => '中文(简体)', 'pl'=>'Polski')" />
+ <parameter id="languages" value="('en'=>'English', 'fr'=>'Français', 'zh' => '中文(简体)', 'pl'=>'Polski', 'ja'=>'日本語')" />
</parameters>
</application>
\ No newline at end of file diff --git a/demos/quickstart/protected/controls/ja/Layout.tpl b/demos/quickstart/protected/controls/ja/Layout.tpl new file mode 100644 index 00000000..54cf14cb --- /dev/null +++ b/demos/quickstart/protected/controls/ja/Layout.tpl @@ -0,0 +1,61 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
+
+<com:THead Title="PRADO クイックスタートチュートリアル">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<meta http-equiv="content-language" content="ja" />
+</com:THead>
+
+<body>
+<com:TForm>
+<div id="header">
+<div class="title">Prado クイックスタートチュートリアル</div>
+<div class="image"></div>
+</div>
+
+<com:TPanel ID="MainMenu" CssClass="mainmenu">
+<div style="float:left; color:black; margin-top:-5px">
+ <com:SearchBox />
+</div>
+<a href="?">ホーム</a> |
+<a href="http://www.pradosoft.com">本家サイト</a> |
+<a href="../../docs/quickstart.pdf">PDF バージョン</a> |
+<com:THyperLink ID="PrinterLink" Text="プリントバージョン" />
+</com:TPanel>
+
+<table width="100%" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<td valign="top" width="1">
+<com:TopicList ID="TopicPanel" />
+</td>
+<td valign="top">
+
+<com:TRepeater ID="languages" OnItemCreated="languageLinkCreated">
+ <prop:HeaderTemplate>
+ <div class="languages">利用可能な言語: <ul>
+ </prop:HeaderTemplate>
+ <prop:ItemTemplate>
+ <li><com:THyperLink ID="link" Text=<%# $this->DataItem %> /></li>
+ </prop:ItemTemplate>
+ <prop:FooterTemplate>
+ </ul></div>
+ </prop:FooterTemplate>
+</com:TRepeater>
+<div id="content">
+<p class="block-content" id="top-content" style="border-color: transparent; height:1px; margin: 0; padding: 0; background-color: transparent"></p>
+<com:TContentPlaceHolder ID="body" />
+</div>
+</td>
+</tr>
+</table>
+
+<div id="footer">
+Copyright © 2005-2007 <a href="http://www.pradosoft.com">PradoSoft</a>.
+<br/><br/>
+<%= Prado::poweredByPrado() %>
+<a href="http://validator.w3.org/check?uri=referer"><img border="0" src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
+</div>
+
+</com:TForm>
+</body>
+</html>
\ No newline at end of file diff --git a/demos/quickstart/protected/controls/ja/SearchBox.tpl b/demos/quickstart/protected/controls/ja/SearchBox.tpl new file mode 100644 index 00000000..092c8d4b --- /dev/null +++ b/demos/quickstart/protected/controls/ja/SearchBox.tpl @@ -0,0 +1,3 @@ +<com:TLabel ForControl="search" Text="検索:" CssClass="searchLabel"/>
+<com:TTextBox ID="search" OnTextChanged="doSearch" CssClass="searchBox"/>
+<com:TButton ID="find" Text="検索" OnClick="doSearch" CssClass="searchButton"/>
\ No newline at end of file diff --git a/demos/quickstart/protected/controls/ja/TopicList.tpl b/demos/quickstart/protected/controls/ja/TopicList.tpl new file mode 100644 index 00000000..cf1fa450 --- /dev/null +++ b/demos/quickstart/protected/controls/ja/TopicList.tpl @@ -0,0 +1,109 @@ +<div id="toc">
+
+<div class="topic">
+<div>ご利用の前に</div>
+<ul>
+ <li><a href="?page=GettingStarted.Introduction">はじめに</a></li>
+ <li><a href="?page=GettingStarted.AboutPrado">PRADO とは?</a></li>
+ <li><a href="?page=GettingStarted.Installation">インストール</a></li>
+ <li><a href="?page=GettingStarted.NewFeatures">新機能</a></li>
+ <li><a href="?page=GettingStarted.Upgrading">v2.x v1.x からのバージョンアップ</a></li>
+</ul>
+</div>
+
+<div class="topic">
+<div>チュートリアル</div>
+<ul>
+ <li><a href="?page=GettingStarted.HelloWorld">初めての PRADO アプリケーション</a></li>
+ <li><a href="?page=Fundamentals.Hangman">Hangman ゲームサンプル</a></li>
+ <li><a href="?page=Tutorial.CurrencyConverter">通貨コンバーター</a></li>
+ <li><a href="?page=Tutorial.AddressBook">アドレス帳</a></li>
+ <li><a href="?page=Tutorial.AjaxChat">Ajax チャット</a></li>
+ <li><a href="?page=GettingStarted.CommandLine">コマンドラインツール</a></li>
+</ul>
+</div>
+
+<div class="topic">
+<div>動作原理</div>
+<ul>
+ <li><a href="?page=Fundamentals.Architecture">アーキテクチャ</a></li>
+ <li><a href="?page=Fundamentals.Components">コンポーネント</a></li>
+ <li><a href="?page=Fundamentals.Controls">コントロール</a></li>
+ <li><a href="?page=Fundamentals.Pages">ページ</a></li>
+ <li><a href="?page=Fundamentals.Modules">モジュール</a></li>
+ <li><a href="?page=Fundamentals.Services">サービス</a></li>
+ <li><a href="?page=Fundamentals.Applications">アプリケーション</a></li>
+</ul>
+</div>
+
+<div class="topic">
+<div>内部構造</div>
+<ul>
+ <li><a href="?page=Configurations.Overview">概観</a></li>
+ <li><a href="?page=Configurations.Templates1">テンプレート: パート I</a></li>
+ <li><a href="?page=Configurations.Templates2">テンプレート: パート II</a></li>
+ <li><a href="?page=Configurations.Templates3">テンプレート: パート III</a></li>
+ <li><a href="?page=Configurations.AppConfig">アプリケーション構造</a></li>
+ <li><a href="?page=Configurations.PageConfig">ページ構造</a></li>
+ <li><a href="?page=Configurations.UrlMapping">URL マッピング (Friendly URLs)</a></li>
+</ul>
+</div>
+
+<div class="topic">
+<div>コントロールリファレンス</div>
+<ul>
+ <li><a href="?page=Controls.Standard">通常コントロール</a></li>
+ <li><a href="?page=Controls.Validation">バリデーションコントロール</a></li>
+ <li><a href="?page=Controls.List">リストコントロール</a></li>
+ <li><a href="?page=Controls.Data">データコントロール</a></li>
+ <li><a href="?page=ActiveControls.Home">アクティブコントロール (AJAX)</a></li>
+ <li><a href="?page=Controls.NewControl">独自のコントロールを作成する</a></li>
+</ul>
+</div>
+
+<div class="topic">
+<div>サービスリファレンス</div>
+<ul>
+ <li><a href="?page=Fundamentals.Services">ページサービス</a></li>
+ <li><a href="?page=Services.SoapService">SOAP サービス</a></li>
+</ul>
+</div>
+
+<div class="topic">
+<div>データベース連携</div>
+<ul>
+ <li><a href="?page=Database.DAO">Data Access Objects</a></li>
+ <li><a href="?page=Database.ActiveRecord">Active Record</a></li>
+ <li><a href="?page=Database.Scaffold">Active Record Scaffold</a></li>
+ <li><a href="?page=Database.SqlMap">SqlMap Data Mapper</a></li>
+</ul>
+</div>
+
+<div class="topic">
+<div>上級者向けトピック</div>
+<ul>
+ <li><a href="?page=Advanced.Collections">Collections</a></li>
+ <li><a href="?page=Advanced.Auth">認証と承認</a></li>
+ <li><a href="?page=Advanced.Security">セキュリティ</a></li>
+ <li><a href="?page=Advanced.Assets">Assets</a></li>
+ <li><a href="?page=Advanced.MasterContent">Master/Content</a></li>
+ <li><a href="?page=Advanced.Themes">テーマとスキン</a></li>
+ <li><a href="?page=Advanced.State">状態の保存</a></li>
+ <li><a href="?page=Advanced.Logging">ロギング</a></li>
+ <li><a href="?page=Advanced.Error">エラーハンドリングとエラーレポート</a></li>
+ <li><a href="?page=Advanced.I18N">国際化対応</a></li>
+ <li><a href="?page=Advanced.Performance">パフォーマンスチューニング</a></li>
+</ul>
+</div>
+
+<div class="topic">
+<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>
+
+</div>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/Applications.page b/demos/quickstart/protected/pages/Fundamentals/ja/Applications.page new file mode 100644 index 00000000..ec6ae4c0 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/Applications.page @@ -0,0 +1,55 @@ +<com:TContent ID="body" >
+
+<h1 id="1201">Applications</h1>
+<p id="160157" class="block-content">
+An application is an instance of <tt>TApplication</tt> or its derived class. It manages modules that provide different functionalities and are loaded when needed. It provides services to end-users. It is the central place to store various parameters used in an application. In a PRADO application, the application instance is the only object that is globally accessible via <tt>Prado::getApplication()</tt> function call.
+</p>
+<p id="160158" class="block-content">
+Applications are configured via <a href="?page=Configurations.AppConfig">application configurations</a>. They are usually created in entry scripts like the following,
+<com:TTextHighlighter CssClass="source block-content" id="code_160071">
+require_once('/path/to/prado.php');
+$application = new TApplication;
+$application->run();
+</com:TTextHighlighter>
+where the method <tt>run()</tt> starts the application to handle user requests.
+</p>
+
+<h2 id="1202">Directory Organization</h2>
+<p id="160159" class="block-content">
+A minimal PRADO application contains two files: an entry file and a page template file. They must be organized as follows,
+<img src="<%~directory.gif%>" class="figure"/>
+</p>
+<ul id="u2" class="block-content">
+<li><tt>wwwroot</tt> - Web document root or sub-directory.</li>
+<li><tt>index.php</tt> - entry script of the PRADO application.</li>
+<li><tt>assets</tt> - directory storing published private files. See <a href="?page=Advanced.Assets">assets</a> section.</li>
+<li><tt>protected</tt> - application base path storing application data and private script files. This directory should be configured inaccessible to Web-inaccessible, or it may be located outside of Web directories.</li>
+<li><tt>runtime</tt> - application runtime storage path. This directory is used by PRADO to store application runtime information, such as application state, cached data, etc.</li>
+<li><tt>pages</tt> - base path storing all PRADO pages. See <a href="?page=Fundamentals.Services">services</a> section.</li>
+<li><tt>Home.page</tt> - default page returned when users do not explicitly specify the page requested. This is a page template file. The file name without suffix is the page name. The page class is <tt>TPage</tt>. If there is also a class file <tt>Home.php</tt>, the page class becomes <tt>Home</tt>.</li>
+</ul>
+
+<p id="160160" class="block-content">
+A product PRADO application usually needs more files. It may include an application configuration file named <tt>application.xml</tt> under the application base path <tt>protected</tt>. The pages may be organized in directories, some of which may contain page configuration files named <tt>config.xml</tt>. Fore more details, please see <a href="?page=Configurations.Overview">configurations</a> section.
+</p>
+
+<h2 id="1203">Application Deployment</h2>
+<p id="160161" class="block-content">
+Deploying a PRADO application mainly involves copying directories. For example, to deploy the above minimal application to another server, follow the following steps,
+</p>
+<ol>
+<li>Copy the content under <tt>wwwroot</tt> to a Web-accessible directory on the new server.</li>
+<li>Modify the entry script file <tt>index.php</tt> so that it includes correctly the <tt>prado.php</tt> file.</li>
+<li>Remove all content under <tt>assets</tt> and <tt>runtime</tt> directories and make sure both directories are writable by the Web server process.</li>
+</ol>
+
+<h2 id="1204">Application Lifecycles</h2>
+<p id="160162" class="block-content">
+Like page lifecycles, an application also has lifecycles. Application modules can register for the lifecycle events. When the application reaches a particular lifecycle and raises the corresponding event, the registered module methods are invoked automatically. Modules included in the PRADO release, such as <tt>TAuthManager</tt>, are using this way to accomplish their goals.
+</p>
+<p id="160163" class="block-content">
+The application lifecycles can be depicted as follows,
+</p>
+<img src="<%~applifecycles.gif%>" />
+
+<div class="last-modified">$Id: Applications.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/Architecture.page b/demos/quickstart/protected/pages/Fundamentals/ja/Architecture.page new file mode 100644 index 00000000..9ca544b0 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/Architecture.page @@ -0,0 +1,15 @@ +<com:TContent ID="body" >
+<h1 id="601">アーキテクチャ</h1>
+
+<p id="100111" class="block-content"> +PRADO は主にプレゼンテーションを操作するためのフレームワークです。(プレゼンテーション操作のみで制限されるわけではありません)<br /> +このフレームワークはウェブプログラミングに集中するためのものであり、開発者がより生産性を上げられるようにコンポーネントベース、イベントドリブンなプログラミングが可能なつくりになっています。<br /> +以下のクラスツリーは PRADO によって提供されている主要なクラスについて書かれたものです。
+</p>
+<img src="<%~classtree.gif%>" />
+
+<p id="100112" class="block-content">
+PRADO アプリケーションがページ要求処理を行う際、以下のオブジェクトダイアグラムで動作します。
+</p>
+<img src="<%~objectdiagram.gif%>" />
+<div class="last-modified">$Id: Architecture.page * 2007-06-04 01:39:00Z Shinya.K $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/Components.page b/demos/quickstart/protected/pages/Fundamentals/ja/Components.page new file mode 100644 index 00000000..98bb5761 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/Components.page @@ -0,0 +1,128 @@ +<com:TContent ID="body" >
+<h1 id="701">Components</h1>
+<p id="110113" class="block-content">
+A component is an instance of <tt>TComponent</tt> or its child class. The base class <tt>TComponent</tt> implements the mechanism of component properties and events.
+</p>
+
+<h2 id="702">Component Properties</h2>
+<p id="110114" class="block-content">
+A component property can be viewed as a public variable describing a specific aspect of the component, such as the background color, the font size, etc. A property is defined by the existence of a getter and/or a setter method in the component class. For example, in <tt>TControl</tt>, we define its <tt>ID</tt> property using the following getter and setter methods,
+<com:TTextHighlighter CssClass="source block-content" id="code_110056">
+class TControl extends TComponent {
+ public function getID() {
+ ...
+ }
+ public function setID($value) {
+ ...
+ }
+}
+</com:TTextHighlighter>
+</p>
+<p id="110115" class="block-content">
+To get or set the <tt>ID</tt> property, do as follows, just like working with a variable,
+<com:TTextHighlighter CssClass="source block-content" id="code_110057">
+$id = $component->ID;
+$component->ID = $id;
+</com:TTextHighlighter>
+This is equivalent to the following,
+<com:TTextHighlighter CssClass="source block-content" id="code_110058">
+$id = $component->getID();
+$component->setID( $id );
+</com:TTextHighlighter>
+</p>
+<p id="110116" class="block-content">
+A property is read-only if it has a getter method but no setter method. Since PHP method names are case-insensitive, property names are also case-insensitive. A component class inherits all its ancestor classes' properties.
+</p>
+
+<h3 id="706">Subproperties</h3>
+<p id="110117" class="block-content">
+A subproperty is a property of some object-typed property. For example, <tt>TWebControl</tt> has a <tt>Font</tt> property which is of <tt>TFont</tt> type. Then the <tt>Name</tt> property of <tt>Font</tt> is referred to as a subproperty (with respect to <tt>TWebControl</tt>).
+</p>
+<p id="110118" class="block-content">
+To get or set the <tt>Name</tt> subproperty, use the following method,
+<com:TTextHighlighter CssClass="source block-content" id="code_110059">
+$name = $component->getSubProperty('Font.Name');
+$component->setSubProperty('Font.Name', $name);
+</com:TTextHighlighter>
+This is equivalent to the following,
+<com:TTextHighlighter CssClass="source block-content" id="code_110060">
+$name = $component->getFont()->getName();
+$component->getFont()->setName( $name );
+</com:TTextHighlighter>
+
+
+</p>
+
+<h2 id="703">Component Events</h2>
+<p id="110119" class="block-content">
+Component events are special properties that take method names as their values. Attaching (setting) a method to an event will hook up the method to the places at which the event is raised. Therefore, the behavior of a component can be modified in a way that may not be foreseen during the development of the component.
+</p>
+<p id="110120" class="block-content">
+A component event is defined by the existence of a method whose name starts with the word <tt>on</tt>. The event name is the method name and is thus case-insensitve. For example, in <tt>TButton</tt>, we have
+<com:TTextHighlighter CssClass="source block-content" id="code_110061">
+class TButton extends TWebControl {
+ public function onClick( $param ) {
+ ...
+ }
+}
+</com:TTextHighlighter>
+This defines an event named <tt>OnClick</tt>, and a handler can be attached to the event using one of the following ways,
+<com:TTextHighlighter CssClass="source block-content" id="code_110062">
+$button->OnClick = $callback;
+$button->OnClick->add( $callback );
+$button->OnClick[] = $callback;
+$button->attachEventHandler( 'OnClick' , $callback );
+</com:TTextHighlighter>
+where <tt>$callback</tt> refers to a valid PHP callback (e.g. a function name, a class method <tt>array($object,'method')</tt>, etc.)
+</p>
+
+<h2 id="704">Namespaces</h2>
+<p id="110121" class="block-content">
+A namespace refers to a logical grouping of some class names so that they can be differentiated from other class names even if their names are the same. Since PHP does not support namespace intrinsically, you cannot create instances of two classes who have the same name but with different definitions. To differentiate from user defined classes, all PRADO classes are prefixed with a letter 'T' (meaning 'Type'). Users are advised not to name their classes like this. Instead, they may prefix their class names with any other letter(s).
+</p>
+<p id="110122" class="block-content">
+A namespace in PRADO is considered as a directory containing one or several class files. A class may be specified without ambiguity using such a namespace followed by the class name. Each namespace in PRADO is specified in the following format,
+<div class="source">
+PathAlias.Dir1.Dir2
+</div>
+where <tt>PathAlias</tt> is an alias of some directory, while <tt>Dir1</tt> and <tt>Dir2</tt> are subdirectories under that directory. A class named <tt>MyClass</tt> defined under <tt>Dir2</tt> may now be fully qualified as <tt>PathAlias.Dir1.Dir2.MyClass</tt>.
+</p>
+<p id="110123" class="block-content">
+To use a namespace in code, do as follows,
+<com:TTextHighlighter CssClass="source block-content" id="code_110063">
+Prado::using('PathAlias.Dir1.Dir2.*');
+</com:TTextHighlighter>
+which appends the directory referred to by <tt>PathAlias.Dir1.Dir2</tt> into PHP include path so that classes defined under that directory may be instantiated without the namespace prefix. You may also include an individual class definition by
+<com:TTextHighlighter CssClass="source block-content" id="code_110064">
+Prado::using('PathAlias.Dir1.Dir2.MyClass');
+</com:TTextHighlighter>
+which will include the class file if <tt>MyClass</tt> is not defined.
+</p>
+<p id="110124" class="block-content">
+For more details about defining path aliases, see <a href="?page=Configurations.AppConfig">application configuration</a> section.
+</p>
+
+<h2 id="705">Component Instantiation</h2>
+<p id="110125" class="block-content">
+Component instantiation means creating instances of component classes. There are two types of component instantation: static instantiation and dynamic instantiation. The created components are called static components and dynamic components, respectively.
+</p>
+
+<h3 id="707">Dynamic Component Instantiation</h3>
+<p id="110126" class="block-content">
+Dynamic component instantiation means creating component instances in PHP code. It is the same as the commonly referred object creation in PHP. A component can be dynamically created using one of the following two methods in PHP,
+<com:TTextHighlighter CssClass="source block-content" id="code_110065">
+$component = new ComponentClassName;
+$component = Prado::createComponent('ComponentType');
+</com:TTextHighlighter>
+where <tt>ComponentType</tt> refers to a class name or a type name in namespace format (e.g. <tt>System.Web.UI.TControl</tt>). The second approach is introduced to compensate for the lack of namespace support in PHP.
+</p>
+
+<h3 id="708">Static Component Instantiation</h3>
+<p id="110127" class="block-content">
+Static component instantiation is about creating components via <a href="?page=Configurations.Overview">configurations</a>. The actual creation work is done by the PRADO framework. For example, in an <a href="?page=Configurations.AppConfig">application configuration</a>, one can configure a module to be loaded when the application runs. The module is thus a static component created by the framework. Static component instantiation is more commonly used in <a href="?page=Configurations.Templates1">templates</a>. Every component tag in a template specifies a component that will be automatically created by the framework when the template is loaded. For example, in a page template, the following tag will lead to the creation of a <tt>TButton</tt> component on the page,
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_110066">
+<com:TButton Text="Register" />
+</com:TTextHighlighter>
+</p>
+
+<div class="last-modified">$Id: Components.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/Controls.page b/demos/quickstart/protected/pages/Fundamentals/ja/Controls.page new file mode 100644 index 00000000..a2787129 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/Controls.page @@ -0,0 +1,51 @@ +<com:TContent ID="body" >
+<h1 id="801">Controls</h1>
+<p id="120128" class="block-content">
+A control is an instance of class <tt>TControl</tt> or its subclass. A control is a component defined in addition with user interface. The base class <tt>TControl</tt> defines the parent-child relationship among controls which reflects the containment relationship among user interface elements.
+</p>
+
+<h2 id="802">Control Tree</h2>
+<p id="120129" class="block-content">
+Controls are related to each other via parent-child relationship. Each parent control can have one or several child controls. A parent control is in charge of the state transition of its child controls. The rendering result of the child controls are usually used to compose the parent control's presentation. The parent-child relationship brings together controls into a control tree. A page is at the root of the tree, whose presentation is returned to the end-users.
+</p>
+<p id="120130" class="block-content">
+The parent-child relationship is usually established by the framework via <a href="?page=Configurations.Templates1">templates</a>. In code, you may explicitly specify a control as a child of another using one of the following methods,
+<com:TTextHighlighter CssClass="source block-content" id="code_120067">
+$parent->Controls->add($child);
+$parent->Controls[]=$child;
+</com:TTextHighlighter>
+where the property <tt>Controls</tt> refers to the child control collection of the parent.
+</p>
+
+<h2 id="803">Control Identification</h2>
+<p id="120131" class="block-content">
+Each control has an <tt>ID</tt> property that can be uniquely identify itself among its sibling controls. In addition, each control has a <tt>UniqueID</tt> and a <tt>ClientID</tt> which can be used to globally identify the control in the tree that the control resides in. <tt>UniqueID</tt> and <tt>ClientID</tt> are very similar. The former is used by the framework to determine the location of the corresponding control in the tree, while the latter is mainly used on the client side as HTML tag IDs. In general, you should not rely on the explicit format of <tt>UniqueID</tt> or <tt>ClientID</tt>.
+</p>
+
+<h2 id="804">Naming Containers</h2>
+<p id="120132" class="block-content">
+Each control has a naming container which is a control creating a unique namespace for differentiating between controls with the same <tt>ID</tt>. For example, a <tt>TRepeater</tt> control creates multiple items each having child controls with the same <tt>ID</tt>s. To differentiate these child controls, each item serves as a naming container. Therefore, a child control may be uniquely identified using its naming container's <tt>ID</tt> together with its own <tt>ID</tt>. As you may already have understood, <tt>UniqueID</tt> and <tt>ClientID</tt> rely on the naming containers.
+</p>
+<p id="120133" class="block-content">
+A control can serve as a naming container if it implements the <tt>INamingContainer</tt> interface.
+</p>
+
+<h2 id="805">ViewState and ControlState</h2>
+<p id="120134" class="block-content">
+HTTP is a stateless protocol, meaning it does not provide functionality to support continuing interaction between a user and a server. Each request is considered as discrete and independent of each other. A Web application, however, often needs to know what a user has done in previous requests. People thus introduce sessions to help remember such state information.
+</p>
+<p id="120135" class="block-content">
+PRADO borrows the viewstate and controlstate concept from Microsoft ASP.NET to provides additional stateful programming mechanism. A value storing in viewstate or controlstate may be available to the next requests if the new requests are form submissions (called postback) to the same page by the same user. The difference between viewstate and controlstate is that the former can be disabled while the latter cannot.
+</p>
+<p id="120136" class="block-content">
+Viewstate and controlstate are implemented in <tt>TControl</tt>. They are commonly used to define various properties of controls. To save and retrieve values from viewstate or controlstate, use following methods,
+<com:TTextHighlighter CssClass="source block-content" id="code_120068">
+$this->getViewState('Name',$defaultValue);
+$this->setViewState('Name',$value,$defaultValue);
+$this->getControlState('Name',$defaultValue);
+$this->setControlState('Name',$value,$defaultValue);
+</com:TTextHighlighter>
+where <tt>$this</tt> refers to the control instance, <tt>Name</tt> refers to a key identifying the persistent value, <tt>$defaultValue</tt> is optional. When retrieving values from viewstate or controlstate, if the corresponding key does not exist, the default value will be returned.
+</p>
+
+<div class="last-modified">$Id: Controls.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/Hangman.page b/demos/quickstart/protected/pages/Fundamentals/ja/Hangman.page new file mode 100644 index 00000000..8448e3dd --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/Hangman.page @@ -0,0 +1,14 @@ +<com:TContent ID="body" >
+
+<h1 id="1301">Sample: Hangman Game</h1>
+<p id="60043" class="block-content">
+Having seen the simple "Hello World" application, we now build a more complex application called "Hangman Game". In this game, the player is asked to guess a word, a letter at a time. If he guesses a letter right, the letter will be shown in the word. The player can continue to guess as long as the number of his misses is within a prespecified bound. The player wins the game if he finds out the word within the miss bound, or he loses.
+</p>
+<p id="60044" class="block-content">
+To facilitate the building of this game, we show the state transition diagram of the gaming process in the following,
+<br /><br />
+To be continued...
+</p>
+<com:RunBar PagePath="Fundamentals.Samples.Hangman.Home" />
+
+<div class="last-modified">$Id: Hangman.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/Modules.page b/demos/quickstart/protected/pages/Fundamentals/ja/Modules.page new file mode 100644 index 00000000..14f3f9e5 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/Modules.page @@ -0,0 +1,50 @@ +<com:TContent ID="body" >
+
+<h1 id="1001">Modules</h1>
+<p id="140141" class="block-content">
+A module is an instance of a class implementing the <tt>IModule</tt> interface. A module is commonly designed to provide specific functionality that may be plugged into a PRADO application and shared by all components in the application.
+</p>
+<p id="140142" class="block-content">
+PRADO uses configurations to specify whether to load a module, load what kind of modules, and how to initialize the loaded modules. Developers may replace the core modules with their own implementations via application configuration, or they may write new modules to provide additional functionalities. For example, a module may be developed to provide common database logic for one or several pages. For more details, please see the <a href="?page=Configurations.Overview">configurations</a>.
+</p>
+<p id="140143" class="block-content">
+There are three core modules that are loaded by default whenever an application runs. They are <a href="#request">request module</a>, <a href="#response">response module</a>, and <a href="#error">error handler module</a>. In addition, <a href="#session">session module</a> is loaded when it is used in the application. PRADO provides default implementation for all these modules. <a href="#custom">Custom modules</a> may be configured or developed to override or supplement these core modules.
+</p>
+
+<a name="request"></a>
+<h2 id="1002">Request Module</h2>
+<p id="140144" class="block-content">
+Request module represents provides storage and access scheme for user request sent via HTTP. User request data comes from several sources, including URL, post data, session data, cookie data, etc. These data can all be accessed via the request module. By default, PRADO uses <tt>THttpRequest</tt> as request module. The request module can be accessed via the <tt>Request</tt> property of application and controls.
+</p>
+
+<a name="response"></a>
+<h2 id="1003">Response Module</h2>
+<p id="140145" class="block-content">
+Response module implements the mechanism for sending output to client users. Response module may be configured to control how output are cached on the client side. It may also be used to send cookies back to the client side. By default, PRADO uses <tt>THttpResponse</tt> as response module. The response module can be accessed via the <tt>Response</tt> property of application and controls.
+</p>
+
+<a name="session"></a>
+<h2 id="1004">Session Module</h2>
+<p id="140146" class="block-content">
+Session module encapsulates the functionalities related with user session handling. Session module is automatically loaded when an application uses session. By default, PRADO uses <tt>THttpSession</tt> as session module, which is a simple wrapper of the session functions provided by PHP. The session module can be accessed via the <tt>Session</tt> property of application and controls.
+</p>
+
+<a name="error"></a>
+<h2 id="1005">Error Handler Module</h2>
+<p id="140147" class="block-content">
+Error handler module is used to capture and process all error conditions in an application. PRADO uses <tt>TErrorHandler</tt> as error handler module. It captures all PHP warnings, notices and exceptions, and displays in an appropriate form to end-users. The error handler module can be accessed via the <tt>ErrorHandler</tt> property of the application instance.
+</p>
+
+<a name="custom"></a>
+<h2 id="1006">Custom Modules</h2>
+<p id="140148" class="block-content">
+PRADO is released with a few more modules besides the core ones. They include caching modules (<tt>TSqliteCache</tt> and <tt>TMemCache</tt>), user management module (<tt>TUserManager</tt>), authentication and authorization module (<tt>TAuthManager</tt>), etc.
+</p>
+<p id="140149" class="block-content">
+When <tt>TPageService</tt> is requested, it also loads modules specific for page service, including asset manager (<tt>TAssetManager</tt>), template manager (<tt>TTemplateManager</tt>), theme/skin manager (<tt>TThemeManager</tt>).
+</p>
+<p id="140150" class="block-content">
+Custom modules and core modules are all configurable via <a href="?page=Configurations.Overview">configurations</a>.
+</p>
+
+<div class="last-modified">$Id: Modules.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/Pages.page b/demos/quickstart/protected/pages/Fundamentals/ja/Pages.page new file mode 100644 index 00000000..32c5d154 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/Pages.page @@ -0,0 +1,23 @@ +<com:TContent ID="body" >
+
+<h1 id="901">Pages</h1>
+<p id="130137" class="block-content">
+Pages are top-most controls that have no parent. The presentation of pages are directly displayed to end-users. Users access pages by sending page service requests.
+</p>
+<p id="130138" class="block-content">
+Each page must have a <a href="?page=Configurations.Templates1">template</a> file. The file name suffix must be <tt>.page</tt>. The file name (without suffix) is the page name. PRADO will try to locate a page class file under the directory containing the page template file. Such a page class file must have the same file name (suffixed with <tt>.php</tt>) as the template file. If the class file is not found, the page will take class <tt>TPage</tt>.
+</p>
+
+<h2 id="902">PostBack</h2>
+<p id="130139" class="block-content">
+A form submission is called <i>postback</i> if the submission is made to the page containing the form. Postback can be considered an event happened on the client side, raised by the user. PRADO will try to identify which control on the server side is responsible for a postback event. If one is determined, for example, a <tt>TButton</tt>, we call it the postback event sender which will translate the postback event into some specific server-side event (e.g. <tt>OnClick</tt> and <tt>OnCommand</tt> events for <tt>TButton</tt>).
+
+</p>
+
+<h2 id="903">Page Lifecycles</h2>
+<p id="130140" class="block-content">
+Understanding the page lifecycles is crucial to grasp PRADO programming. Page lifecycles refer to the state transitions of a page when serving this page to end-users. They can be depicted in the following statechart,
+<img src="<%~lifecycles.gif %>" />
+</p>
+
+<div class="last-modified">$Id: Pages.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/Services.page b/demos/quickstart/protected/pages/Fundamentals/ja/Services.page new file mode 100644 index 00000000..c35f3e26 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/Services.page @@ -0,0 +1,34 @@ +<com:TContent ID="body" >
+
+<h1 id="1101">Services</h1>
+<p id="150151" class="block-content">
+A service is an instance of a class implementing the <tt>IService</tt> interface. Each kind of service processes a specific type of user requests. For example, the page service responds to users' requests for PRADO pages.
+</p>
+<p id="150152" class="block-content">
+A service is uniquely identified by its <tt>ID</tt> property. By default when <tt>THttpRequest</tt> is used as the <a href="?page=Fundamentals.Modules#request">request module</a>, GET variable names are used to identify which service a user is requesting. If a GET variable name is equal to some service <tt>ID</tt>, the request is considered for that service, and the value of the GET variable is passed as the service parameter. For page service, the name of the GET variable must be <tt>page</tt>. For example, the following URL requests for the <tt>Fundamentals.Services</tt> page,
+<com:TTextHighlighter Language="none" CssClass="source block-content" id="code_150069">
+http://hostname/index.php?page=Fundamentals.Services
+</com:TTextHighlighter>
+</p>
+<p id="150153" class="block-content">
+Developers may implement additional services for their applications. To make a service available, configure it in <a href="?page=Configurations.AppConfig">application configurations</a>.
+</p>
+
+<h2 id="1102">Page Service</h2>
+<p id="150154" class="block-content">
+PRADO implements <tt>TPageService</tt> to process users' page requests. Pages are stored under a directory specified by the <tt>BasePath</tt> property of the page service. The property defaults to <tt>pages</tt> directory under the application base path. You may change this default by configuring the service in the application configuration.
+</p>
+<p id="150155" class="block-content">
+Pages may be organized into subdirectories under the <tt>BasePath</tt>. In each directory, there may be a page configuration file named <tt>config.xml</tt>, which contains configurations effective only when a page under that directory or a sub-directory is requested. For more details, see the <a href="?page=Configurations.PageConfig">page configuration</a> section.
+</p>
+<p id="150156" class="block-content">
+Service parameter for the page service refers to the page being requested. A parameter like <tt>Fundamentals.Services</tt> refers to the <tt>Services</tt> page under the <tt><BasePath>/Fundamentals</tt> directory. If such a parameter is absent in a request, a default page named <tt>Home</tt> is assumed. Using <tt>THttpRequest</tt> as the request module (default), the following URLs will request for <tt>Home</tt>, <tt>About</tt> and <tt>Register</tt> pages, respectively,
+<com:TTextHighlighter Language="none" CssClass="source block-content" id="code_150070">
+http://hostname/index.php
+http://hostname/index.php?page=About
+http://hostname/index.php?page=Users.Register
+</com:TTextHighlighter>
+where the first example takes advantage of the fact that the page service is the default service and <tt>Home</tt> is the default page.
+</p>
+
+<div class="last-modified">$Id: Services.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/applifecycles.gif b/demos/quickstart/protected/pages/Fundamentals/ja/applifecycles.gif Binary files differnew file mode 100644 index 00000000..d5300aa6 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/applifecycles.gif diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/classtree.gif b/demos/quickstart/protected/pages/Fundamentals/ja/classtree.gif Binary files differnew file mode 100644 index 00000000..b1fbf0d6 --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/classtree.gif diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/directory.gif b/demos/quickstart/protected/pages/Fundamentals/ja/directory.gif Binary files differnew file mode 100644 index 00000000..c7d5086d --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/directory.gif diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/lifecycles.gif b/demos/quickstart/protected/pages/Fundamentals/ja/lifecycles.gif Binary files differnew file mode 100644 index 00000000..5edaff5f --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/lifecycles.gif diff --git a/demos/quickstart/protected/pages/Fundamentals/ja/objectdiagram.gif b/demos/quickstart/protected/pages/Fundamentals/ja/objectdiagram.gif Binary files differnew file mode 100644 index 00000000..7910469c --- /dev/null +++ b/demos/quickstart/protected/pages/Fundamentals/ja/objectdiagram.gif diff --git a/demos/quickstart/protected/pages/GettingStarted/ja/AboutPrado.page b/demos/quickstart/protected/pages/GettingStarted/ja/AboutPrado.page new file mode 100644 index 00000000..74ca125d --- /dev/null +++ b/demos/quickstart/protected/pages/GettingStarted/ja/AboutPrado.page @@ -0,0 +1,98 @@ +<com:TContent ID="body" >
+<h1 id="201">PRADO とは?</h1>
+<p id="20003" class="block-content"> +PRADO はコンポーネントベースかつイベントドリブンなウェブアプリケーションを開発するためのPHP5フレームワークです。<br /> +「PRADO」の名称は、<b>P</b>HP <b>R</b>apid <b>A</b>pplication <b>D</b>evelopment <b>O</b>bject-oriented の略です。
+</p>
+<p id="20004" class="block-content"> +PRADO の第一の目標は、ウェブプログラミングにおいてコードの再利用を可能にすることです。<br /> +自分自身で開発したコードを再利用するだけではなく、簡単な方法で他人の開発したコードを再利用することを目的としています。<br /> +これは、開発工数を劇的に減らす事ができ、とても重要な項目といえます。<br /> +この目的を実現するためにコンポーネントベースの概念を導入しています。
+</p>
+<p id="20005" class="block-content"> +上記の目的を達するために、PRADO ではコンポーネントを作成し、コンポーネントにアプリケーションの動作を定義する方法を採用しています。<br /> +コンポーネントは、継承可能なものになっているので、簡単なコードの書き換えで再利用することが可能となっており、既存コンポーネントを利用して、簡単に新しいコンポーネントを作成する事ができます。
+</p>
+<p id="20006" class="block-content"> +コンポーネントをインタラクティブに利用できるように、PRADO ではイベントドリブンプログラミングの枠組みを含んでいます。<br /> +ボタンの押下などのユーザーアクションをメソッドに対応付けておく事で、サーバー側のイベントとして自動的に取得する事ができます。<br /> +POST/GET 変数を取得して処理をする従来のウェブプログラミングと比べて、イベントドリブン型プログラミングは開発者が必要な処理に集中でき、POST/GET の取得などの反復コードも激減する事になります。 +</p>
+<p id="20007" class="block-content"> +PRADO でのアプリケーション開発は、ページにコンポーネントを配置し、プロパティの設定やイベントに反応するメソッドをコーディングすることが主な作業となります。<br /> +これはデスクトップ GUI アプリケーションを開発するのに使用する Borland Delphi や Microsoft Visual Basic などの RAD ツールと非常に似た作りとなっています。
+</p>
+
+<h2 id="202">なぜ PRADO を使うのですか?</h2>
+<p id="20008" class="block-content"> +PRADO はユニークなフレームワークとして紹介されています。<br /> +事実、退屈な PHP プログラミングを楽しいものと変えることができるくらいユニークなフレームワークです。<br /> +以下のリストは、PRADO に関する主な機能となっています。
+</p>
+<ul id="prado-features" class="block-content">
+<li>再利用性 - PRADO コンポーネントは再利用性に優れています。開発チームの他の人が開発したコードを再利用することにより、容易にチーム開発での連携を強める事ができます。</li>
+<li>イベントドリブン型プログラミング - サーバーイベントとしてユーザーのアクションを取得する事ができるので、インタラクティブなアプリケーション開発をすることができます。</li>
+<li>チーム統合 - 画面出力部分とロジック部分が別々に保存されるので、デザイナーと開発者の連携が容易になります。</li>
+<li>便利なウェブコントロール - PRADO ではとても便利なウェブコントロールがいくつも用意されており、数行のコードで利用可能となっています。例えば DataGrid コントロールを使用すると、ページングやソート、編集、行の削除が可能なテーブルを数行のコードで画面に出力する事ができます。</li> +<li>強力なデータベースサポート - バージョン3.1から、PRADO フレームワークのネイティブコードでデータベースサポートがされています。データベースへのアクセスは、シンプルな PDO ベースのアクセス、active record、スキーマのマッピングをサポートした SqlMap から選択する事ができます。</li>
+<li>AJAX サポート - バージョン3.1から、アクティブコントロールが実装されました。開発者は javascript のコードを一行も書くことなく、AJAXを利用する事ができます。アクティブコントロールの利用は、通常のコントロールの利用方法とまったく変わらずに行う事ができます。</li>
+<li>I18N/L10N サポート - PRADO では国際語化ならびにローカライズに対応しています。</li>
+<li>XHTML 対応 - PRADO で生成されたウェブページは XHTML に対応しています。</li>
+<li>既存技術の利用が可能 - PRADO はプレゼンテーション層にターゲットを当てたフレームワークです。ほとんどの既存クラスライブラリやツールをそのまま利用する事ができます。例として、AdoDB や Creole なども PRADO アプリケーションで利用する事ができます。</li>
+<li>その他の機能 - エラーハンドリングとメッセージのロギング機能、キャッシング機構、エラーハンドリングのカスタム、ローカライズ、拡張可能な認証機能、クロスサイトサイトスクリプティング等のセキュリティに対応、クッキー保護等</li>
+</ul>
+
+<h2 id="203">PRADO での開発はどの場面が適していますか?</h2>
+<p id="20009" class="block-content"> +PRADO はインタラクティブなウェブアプリケーションを開発するのにとても適しています。<br /> +コンテンツ管理システム(CMS)や、Eコマースなどの複雑なシステムを比較的容易に開発する事ができます。<br /> +PRADO はコンポーネントベースのオブジェクト指向プログラミングですので、企業等でのチーム開発で力を発揮します。
+</p>
+<p id="20011" class="block-content"> +PRADO はアプリケーションの高速化とスケーラビリティを実現するためのキャッシュ機構を実装しています。<br /> +利用する環境によりキャッシュモジュールを選択し、PRADO アプリケーションで利用する事ができます。<br /> +出力キャッシュは、レンダリングされたウェブページの一部をキャッシュとして保存しておき、再度レンダリングする際に自動的にキャッシュから取得する機構になっています。
+</p>
+
+<h2 id="204">PRADO は他のフレームワークと比較してどのような点が異なっていますか?</h2>
+<p id="20012" class="block-content"> +PRADO はよくユニークなフレームワークと呼ばれています。<br /> +コンポーネントベースとイベントドリブンな実装が特にユニークであるとされています。<br /> +このプログラミング方法はデスクトップアプリケーション開発においては新しくはなく、いくつかのウェブプログラミング言語でも実装されていますが、PHP のフレームワークとしてはおそらく初めて実装されたフレームワークです。<br />
+</p>
+<p id="20013" class="block-content"> +ほとんどの PHP フレームワークでは、画面表示部分とロジック部分を切り離して、MVCデザインパターンをすすめています。<br /> +PRADO では、テンプレートの中に画面表示部分とロジック部分を埋め込んだ事により、自然にMVCと同じ目標を達成する事ができています。<br /> +そして、MVCでは実現できなかったコンポーネントベースのプログラミングスタイル、豊富なウェブコントロール、強力なデータベースサポート、柔軟なエラー処理とロギング機能などの色々な機能を実装することができています。
+</p>
+
+<h2 id="4004">PRADO は安定していますか?</h2>
+<p id="20004" class="block-content"> +はい。PRADO は2004年8月に初めてリリースされました。<br /> +品質を確保するために多くのテストプログラムが作成されており、何千人もの開発者が利用しています。<br /> +このテストプログラムによるテストを重ねて、フレームワークは開発されており、バグや機能追加などは TRAC システムにより管理されています。<br /> +そして、すべての開発者の疑問にスピーディーに回答できるようにコミュニティも用意してあります。
+</p>
+
+<h2 id="205">PRADO の歴史</h2>
+<p id="20014" class="block-content"> +PRADO のユニークな発想は Apache Tapestry から生まれました。<br /> +設計と実装には、Borland Delphi と Microsoft ASP.NET から多くのアイディアを借りました。<br /> +PRADO の最初のバージョンは、2004年6月にできて、PHP4で書かれていましたが、Zend PHP5コンテストに応募するためにPHP5のコードに書き直しました。(PHP5から提供されたオブジェクトモデルはとても助けになりました)<br /> +そして PRADO は Zend コンテストで観客・審査員の高い評価を得て特賞を勝ち取りました。<br />
+</p>
+<p id="20015" class="block-content"> +2004年8月にオープンソースプロジェクトとして SourceForge にて提供され始め、そのすぐ後にプロジェクトサイト「<a href="http://www.xisc.com/">xisc.com</a>」が公開されました。<br /> +PRADO 開発チームと PRADO ユーザーのサポートにより、PRADO は2005年中頃にバージョン2.0へとバージョンアップしました。<br /> +このバージョンでは Wei Zhuo が I18N/L10N サポートの実装で貢献をしました。
+</p>
+<p id="20016" class="block-content"> +2005年5月に、バージョン2.0で見つかった問題点を解決し、さらに Microsoft ASP.NET2.0 で利用可能ないくつかの機能を実装するために PRADO フレームワークを完全に書き直す決定をしました。<br /> +1年近い期間をかけて、新たに50,000行を超える新しいコードを追加し、2006年4月にバージョン3.0をリリースしました。
+</p>
+<p id="20017" class="block-content"> +バージョン3.0では、PRADO の品質と安定性を確実にするために多くの時間を当てています。 +そして私たちは、PRADO 2.x/1.x にてコンセプトの試験を重ね、PRADO 3.x を重要なビジネスアプリケーションの開発のフレームワークまで成長させたと確信しています。
+</p>
+<div class="last-modified">$Id: AboutPrado.page * 2007-06-06 21:53:00Z Shinya.K $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/GettingStarted/ja/CommandLine.page b/demos/quickstart/protected/pages/GettingStarted/ja/CommandLine.page new file mode 100644 index 00000000..ac15bfbb --- /dev/null +++ b/demos/quickstart/protected/pages/GettingStarted/ja/CommandLine.page @@ -0,0 +1,106 @@ +<com:TContent ID="body" >
+<h1 id="501">Command Line Tool</h1>
+<p id="70046" class="block-content">The optional <tt>prado-cli.php</tt> PHP script file in the <tt>framework</tt>
+directory provides command line tools to perform various tedious takes in Prado.
+The <tt>prado-cli.php</tt> can be used to create Prado project skeletons, create
+initial test fixtures, and access to an interactive PHP shell.
+</p>
+<h2 id="502">Requirements</h2>
+<p id="70047" class="block-content">
+To use the command line tool, you need to use your command prompt, command console
+or terminal. In addition, PHP must be able to execute PHP scripts from
+the command line.
+</p>
+
+<h2 id="503">Usage</h2>
+<p id="70048" class="block-content">
+If you type <tt>php path/to/framework/prado-cli.php</tt>, you should see
+the following information. Alternatively, if you are not on Windows,
+you may try to change the <tt>prado-cli.php</tt> into an executable
+and execute it as a script</p>
+<com:TTextHighlighter Language="cli" CssClass="source block-content cli" id="code_70006">
+Command line tools for Prado 3.0.5.
+usage: php prado-cli.php action <parameter> [optional]
+example: php prado-cli.php -c mysite
+
+actions:
+ -c <directory>
+ Creates a Prado project skeleton for the given <directory>.
+
+ -t <directory>
+ Create test fixtures in the given <directory>.
+
+ shell [directory]
+ Runs a PHP interactive interpreter. Initializes the Prado
+ application in the given [directory].
+</com:TTextHighlighter>
+
+<p id="70049" class="block-content">The <b><parameter></b> are required parameters and <b>[optional]</b>
+are optional parameters. </p>
+
+<h2 id="504">Creating a new Prado project skeleton</h2>
+
+<p id="70050" class="block-content">To create a Prado project skeleton, do the following:</p>
+<ol>
+ <li>Change to the directory where you want to create the project skeleton.</li>
+ <li>Type, <tt>php ../prado/framework/prado-cli.php -c helloworld</tt>, where
+ <tt>helloworld</tt> is the directory name that you want to create the project skeleton files.</li>
+ <li>Type, <tt>php ../prado/framework/prado-cli.php <b>-t</b> helloworld</tt> to create
+ the test fixtures for the <tt>helloworld</tt> project.</li>
+</ol>
+
+<h2 id="505">Interactive Shell</h2>
+<p id="70051" class="block-content">
+The interactive shell allows you to evaluate PHP statements from the command line.
+The <tt>prado-cli.php</tt> script can be used to start the shell and load an existing
+Prado project. For example, let us load the blog demo project. Assume that your
+command line is in the <tt>prado</tt> distribution directory and you type.
+</p>
+<p id="70052" class="block-content">
+<com:TTextHighlighter Language="cli" CssClass="source block-content cli" id="code_70007">
+$: php framework/prado-cli.php shell demos/blog
+</com:TTextHighlighter>
+The output should be
+<com:TTextHighlighter Language="cli" CssClass="source block-content cli" id="code_70008">
+Command line tools for Prado 3.0.5.
+** Loaded Prado application in directory "demos\blog\protected".
+PHP-Shell - Version 0.3.1
+(c) 2006, Jan Kneschke <jan@kneschke.de>
+
+>> use '?' to open the inline help
+
+>>
+</com:TTextHighlighter>
+Then we will get an instance of the Prado blog application, and from
+that instance we want an instance of the <tt>'data'</tt> module. Notice that
+a <b>semicolon</b> at the end of the line <b>suppresses the output</b>.
+
+<com:TTextHighlighter Language="cli" CssClass="source block-content cli" id="code_70009">
+>> $app = Prado::getApplication();
+
+>> $db = $app->getModule('data');
+</com:TTextHighlighter>
+Lastly, we want to use the data module to query for a post with <tt>ID=1</tt>. Notice that
+we <b>leave out the semicolon</b> to show the results.
+<com:TTextHighlighter Language="cli" CssClass="source block-content cli" id="code_70010">
+>> $db->queryPostByID(1)
+</com:TTextHighlighter>
+There should not be any errors and you should see the following.
+<com:TTextHighlighter Language="cli" CssClass="source block-content cli" id="code_70011">
+PostRecord#1
+(
+ [ID] => 1
+ [AuthorID] => 1
+ [AuthorName] => 'Prado User'
+ [CreateTime] => 1148819691
+ [ModifyTime] => 0
+ [Title] => 'Welcome to Prado Weblog'
+ [Content] => 'Congratulations! You have successfully installed Prado Blog --
+ a PRADO-driven weblog system. A default administrator account has been created.
+ Please login with <b>admin/prado</b> and update your password as soon as possible.'
+ [Status] => 0
+ [CommentCount] => 0
+)
+</com:TTextHighlighter>
+</p>
+<div class="last-modified">$Id: CommandLine.page 1927 2007-05-10 23:00:04Z wei $</div></com:TContent>
diff --git a/demos/quickstart/protected/pages/GettingStarted/ja/HelloWorld.page b/demos/quickstart/protected/pages/GettingStarted/ja/HelloWorld.page new file mode 100644 index 00000000..b3b0f142 --- /dev/null +++ b/demos/quickstart/protected/pages/GettingStarted/ja/HelloWorld.page @@ -0,0 +1,89 @@ +<com:TContent ID="body" > +<h1 id="401">初めての PRADO アプリケーション</h1> +<div id="hello1" class="block-content"> +<p id="50034"> +ここでは、初めて PRADO アプリケーションを開発する人のために、定番の "Hello World" アプリケーションを解説します。 +</p>
+<p id="50035">
+"Hello World" を作る事は、最もシンプルで<i>インタラクティブ</i>な PRADO アプリケーションを作る事かもしれません。<br /> +このアプリケーションは、ページに <tt>Click Me</tt> と書いてある送信ボタンを配置してあります。<br /> +ユーザーがボタンをクリックすると、ボタン文字が <tt>Hello World</tt> に変わるというアプリケーションです。
+</p>
+<p id="50036">
+このアプリケーションには、複雑なアプリケーションを作る上で重要なアプローチがいくつかあります。<br /> +ひとつは、ページからサーバーに変数を送信して、その変数を利用して新しいページ(新しいボタン)を生成していることです。<br /> +またもう一つは、Javascript の <tt>onclick</tt> を意識することなく利用し、ボタン文字を変更する事ができるということです。 +</p>
+</div>
+<p id="50037" class="block-content"> +PRADO ではコンポーネントベース、そしてイベントドリブンのウェブプログラミングを構築する事ができます。<br /> +ボタンは、<tt>TButton</tt> オブジェクトを使用します。 +<tt>TButton</tt> では <tt>Text</tt> プロパティがボタン文字となり、ユーザーのクリック動作をサーバーサイドの <tt>OnClick</tt> イベントに対応付けます。<br /> +<tt>Text</tt> プロパティを変更する内容を定義したメソッドを <tt>OnClick</tt> に対応付けるだけで、ボタンクリックのアクションを設定することができます。<br /> +以下にアプリケーションのシーケンスを示します。 +<img src="<%~sequence.gif%>" class="figure"/>
+</p>
+<p id="50038" class="block-content"> +このアプリケーションは3つのファイル <tt>index.php</tt>, <tt>Home.page</tt>, <tt>Home.php</tt> から構成されています。
+<img src="<%~directory.gif%>" class="figure"/>
+ +各ディレクトリ名は開発者によって変更する事が可能です。例えば <tt>protected</tt> ディレクトリはウェブサーバーにより公開されたディレクトリ以外の場所へ移動することができます。このチュートリアルを読む事で、その方法を修得する事ができます。
+</p>
+<ul id="dir-struct" class="block-content">
+<li><tt>assets</tt> - このディレクトリにはコンポーネントからファイルが展開されます。詳細は <a href="?page=Advanced.Assets">assets</a> に書かれていますのでご覧下さい。このディレクトリはウェブサーバープロセスから書き込み可能である事が必要となります。</li>
+<li><tt>protected</tt> - アプリケーションデータと開発したコードが保存されるディレクトリです。このディレクトリは閲覧者からのアクセスを禁止されているべきディレクトリです。</li>
+<li><tt>runtime</tt> - アプリケーション状態などのアプリケーション情報がキャッシュとして保存されるディレクトリです。このディレクトリはウェブサーバープロセスからの書き込みが可能でなければなりません。</li>
+<li><tt>pages</tt> - PRADO ページを保存するディレクトリです。</li>
+</ul>
+
+<div class="tip">
+<b class="tip">Tip:</b>PRADO プロジェクトディレクトリを作成するのに <tt>framework/prado-cli.php</tt>(<a href="?page=GettingStarted.CommandLine">コマンドラインスクリプト</a>)を使用することができます。<br /> +例えば、<tt>helloworld</tt> プロジェクトを作りたいディレクトリへ移動し、<tt>php path/to/prado-cli.php -c helloworld</tt> とコマンド入力する事で、<tt>helloworld</tt> プロジェクトディレクトリを作成する事ができます。
+</div>
+
+<p id="50040"> +アプリケーションの実行に必要な3つのファイルの内容は以下のとおりです。
+</p>
+<ul id="file-list" class="block-content">
+<li><tt>index.php</tt> - PRADO アプリケーションのエントリースクリプトです。このファイルは、PRADO アプリケーションでは必ず必要なファイルであり、唯一エンドユーザーが直接アクセスできるスクリプトファイルです。<tt>index.php</tt> の内容は主に以下の3つの項目からなっています。
+<com:TTextHighlighter CssClass="source block-content" id="code_50003">
+require_once('path/to/prado.php'); // PRADO スクリプトの読み込み
+$application=new TApplication; // PRADO アプリケーションインスタンスの作成
+$application->run(); // アプリケーション実行
+</com:TTextHighlighter>
+</li>
+<li><tt>Home.page</tt> - エンドユーザーが明示的にページを指定しない場合にこのページテンプレートが呼び出されます。テンプレートファイルでは、コンポーネントのレイアウトを定義します。この例では、<tt>TForm</tt> と <tt>TButton</tt> を使用しており、それぞれ<form> <input> のHTMLタグに対応しています。 +<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_50004">
+<html>
+ <body>
+ <com:TForm>
+ <com:TButton Text="Click me" OnClick="buttonClicked" />
+ </com:TForm>
+ </body>
+</html>
+</com:TTextHighlighter>
+</li>
+<li><tt>Home.php</tt> - <tt>Home</tt> テンプレートファイルのクラス定義ファイルです。ここではボタンの <tt>OnClick</tt> イベント内容の定義を行っています。
+<com:TTextHighlighter CssClass="source block-content" id="code_50005">
+class Home extends TPage
+{
+ public function buttonClicked($sender,$param)
+ {
+ // $sender refers to the button component
+ $sender->Text="Hello World!";
+ }
+}
+</com:TTextHighlighter>
+</li>
+</ul>
+<div id="hello-end" class="block-content">
+<p id="50041"> +アプリケーションファイルの準備ができたら、次のURLからアクセスすることができます。 <tt>http://Web-server-address/helloworld/index.php</tt><br /> +この例では<tt>ドキュメントルート</tt>配下に <tt>helloworld</tt> というディレクトリを配置しています。<tt>Home.page</tt> テンプレートファイル内の <tt>TButton</tt> を <tt>TLinkButton</tt> へ変更してみてどのようになるかも試してみてください。
+</p>
+<p id="50042"> +PRADO リリースアーカイブファイルにこのデモのソースを格納しています。また、<a href="http://www.pradosoft.com/demos/helloworld/">オンラインデモ</a>にて動作を確認する事ができます。
+</p>
+</div>
+
+<div class="last-modified">$Id: HelloWorld.page 1650 2007-06-04 00:38:00Z Shinya.K $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/GettingStarted/ja/Installation.page b/demos/quickstart/protected/pages/GettingStarted/ja/Installation.page new file mode 100644 index 00000000..746b3a8e --- /dev/null +++ b/demos/quickstart/protected/pages/GettingStarted/ja/Installation.page @@ -0,0 +1,33 @@ +<com:TContent ID="body" >
+<h1 id="301">PRADO のインストール</h1>
+<div id="install-info" class="block-content">
+<p id="30018"> +ご自分で管理されているサーバーをお持ちであれば、すぐにインストールすることが可能です。
+</p>
+<p id="30019"> +PRADO の最小構成は、サーバーがPHP5をサポートしていることです。<br /> +PRADO は Windows と Linux 両環境の Apache サーバーでテストされています。<br /> +PHP5 がサポートされているのであれば、他の環境でも動作させることができるかもしれません。
+</p>
+</div>
+
+<div id="install-steps" class="block-content">
+<p id="30020"> +PRADO のインストールは、PRADO をダウンロードし解凍することが主な作業となります。
+</p>
+<ol>
+<li><a href="http://www.pradosoft.com/">PRADO公式ページ</a>からPRADOの最新版をダウンロードします。</li>
+<li>ウェブアクセス可能なディレクトリに展開します。</li>
+</ol>
+</div>
+<div id="install-after" class="block-content">
+<p id="30021"> +上記の作業のみでPRADOのインストールが完了します。<br /> +<tt>http://web-server-address/prado/demos/</tt> 以下にPRADOデモアプリケーションが展開されますので、PRADOを利用したアプリケーションの動作を体験する事ができます。<br /> +デモアプリケーションの動作が確認できていれば、<tt>DocumentRoot</tt> 配下に <tt>prado</tt> サブディレクトリが展開されたことになりますので、インストールは正常に完了しております。
+</p>
+<p id="30022"> +もしデモアプリケーションが動作しない等の問題が発生しましたら、サーバー構成がPRADO必要条件を満たしているかどうかを確認する事ができるスクリプト <tt>http://web-server-address/prado/requirements/index.php</tt> が用意されていますので、確認してください。
+</p>
+</div>
+<div class="last-modified">$Id: Installation.page * 2007-06-03 17:01:00Z Shinya.K $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/GettingStarted/ja/Introduction.page b/demos/quickstart/protected/pages/GettingStarted/ja/Introduction.page new file mode 100644 index 00000000..31a20df1 --- /dev/null +++ b/demos/quickstart/protected/pages/GettingStarted/ja/Introduction.page @@ -0,0 +1,64 @@ +<com:TContent ID="body" >
+<h1 id="101">ようこそ PRADO クイックスタートチュートリアルへ</h1>
+<div id="intro" class="block-content">
+<p id="10001">
+このチュートリアルはPRADO3.xを使ったアプリケーションをスピーディーに構築するためのものです。 +</p>
+<p id="10001" class="block-content"> +既にPRADO3.xを使用しており、新しいバージョンで利用可能な機能を知りたい方には<a href="?page=GettingStarted.NewFeatures">新機能ページ</a>を用意してあります。<br /> +PRADOを使用したことのない方にはこのチュートリアルはとても役立つものですので、ぜひご覧下さい。
+</p>
+<!--
+<div class="start-page">
+ <div class="concepts start-block">
+ <h2 id="2001">How PRADO Works</h2>
+ <p id="10002" class="block-content">Concepts and fundamentals</p>
+ <ol>
+ <li><a href="#">Building web applications with PRADO</a></li>
+ <li><a href="#">Web controls and events</a></li>
+ <li><a href="#">Validating user input</a></li>
+ <li><a href="#">Connecting to your database</a></li>
+ <li><a href="#">Displaying data from database</a></li>
+ </ol>
+ </div>
+ <div class="examples start-block">
+ <h2 id="2002">Examples and Demos</h2>
+ <ul>
+ <li><a href="../helloworld/">Hello World</a></li>
+ <li><a href="../currency-convert/">Currency Converter</a></li>
+ <li><a href="../address-book/">Address Book</a></li>
+ <li><a href="../blog/">Blog</a></li>
+ <li><a href="../chat/">AJAX Chat</a></li>
+ <li><a href="../time-tracker/">Project Time Tracker</a></li>
+ </ul>
+ <p id="10003" class="block-content">More examples in <a href="?page=Controls.Standard">Standard Controls</a>,
+ <a href="?page=Controls.Validation">Validation Controls</a> and
+ <a href="?page=Controls.Data">Data Controls</a>.
+ </div>
+
+ <div class="tutorials start-block">
+ <h2 id="2003">Tutorials and Help</h2>
+ <ul>
+ <li><a href="?page=GettingStarted.HelloWorld">Hello World in detail</a></li>
+ <li><a href="?page=Tutorial.CurrencyConverter">Currency Converter Tutorial</a></li>
+ <li><a href="?page=Tutorial.AddressBook">Address Book Tutorial</a></li>
+ <li><a href="?page=Tutorial.AjaxChat">AJAX Chat Tutorial</a></li>
+ </ul>
+ </div>
+</div>
+-->
+
+<p id="10002">
+このチュートリアルでは全ての機能は網羅しておりませんが、以下のリンクから開発の助けを得る事ができます。
+</p>
+</div>
+<ul class="block-content" id="intro-links">
+ <li><a href="http://www.pradosoft.com/docs/classdoc/">PRADO Classes</a></li>
+ <li><a href="http://www.pradosoft.com/docs/manual/">PRADO APIドキュメント</a></li>
+ <li><a href="http://www.pradosoft.com/forum/">PRADO フォーラム</a></li>
+ <li><a href="http://www.pradosoft.com/wiki/">PRADO Wiki</a></li>
+ <li><a href="http://trac.pradosoft.com/prado/">PRADO Trac</a></li>
+</ul>
+
+<div class="last-modified">$Id: Introduction.page * 2007-06-03 16:43:00Z Shinya.K $</div> +</com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/GettingStarted/ja/NewFeatures.page b/demos/quickstart/protected/pages/GettingStarted/ja/NewFeatures.page new file mode 100644 index 00000000..9fe65a4a --- /dev/null +++ b/demos/quickstart/protected/pages/GettingStarted/ja/NewFeatures.page @@ -0,0 +1,36 @@ +<com:TContent ID="body" >
+
+<h1 id="8005">新機能</h1>
+
+<p id="40005" class="block-content">
+このページは、以下バージョンの PRADO に含まれる新機能の概要を紹介するページです。 +</p>
+
+<h2 id="8006">バージョン 3.1.0</h2>
+<ul>
+
+<li>AJAXサポート<br /> +全てのコントロールにて Ajaxが有効になりました。(アクティブコントロール - active controls)<br /> +アクティブコントロールは、通常のコントロールととても似た作りになっています。<br /> +使用方法の詳細はチュートリアル <a href="?page=ActiveControls.Home">アクティブコントロール</a> をご覧下さい。</li>
+
+<li>データベース連携サポートの完成 </li>
+<li>新しいコントロール/モジュール/サービスを追加<br /> +<a href="?page=Services.SoapService">TSoapService</a>, <a href="?page=Controls.OutputCache">TOutputCache</a>, TSessionPageStatePersister, TFeedService, TJsonService, cache dependency classes, TXmlTransform.
+</li>
+
+<li>データコントロールの描画エンジンを改善<br /> +データコントロールにて、アイテムテンプレートを再利用して描画するよう改善しました。<br /> +<tt>TRepeater</tt>, <tt>TDataList</tt>, <tt>TDataGrid</tt> などのコントロールでの構成がクリアなコードになりました。<br /> +チュートリアルが更新されているので、詳細はチュートリアル <a href="?page=Controls.Repeater"><tt>TRepeater</tt></a>, <a href="?page=Controls.DataList"><tt>TDataList</tt></a>, <a href="?page=Controls.DataGrid"><tt>TDataGrid</tt></a> をご覧下さい。</li>
+
+<li>アプリケーション構造ファイルにて外部ファイル設定をサポート<br /> +<a href="?page=Configurations.AppConfig">アプリケーション構造</a>を外部ファイルにも定義できるようになり、<a href="?page=Configurations.Templates1">テンプレート</a>での定義など柔軟なアプリケーション定義ができるようになりました</li>
+
+<li>TDbUserManager / TDbUser によるシンプルなユーザー認証<br /> +<a href="?page=Advanced.Auth">認証</a>処理時のユーザーアカウントをデータベースに簡単に保存できるようになりました。</li>
+
+</ul>
+
+<div class="last-modified">$Id: NewFeatures.page * 2007-06-03 18:35:00Z Shinya.K $</div>
+</com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/GettingStarted/ja/Upgrading.page b/demos/quickstart/protected/pages/GettingStarted/ja/Upgrading.page new file mode 100644 index 00000000..6a44ce08 --- /dev/null +++ b/demos/quickstart/protected/pages/GettingStarted/ja/Upgrading.page @@ -0,0 +1,64 @@ +<com:TContent ID="body" >
+
+<h1 id="501">Upgrading from v2.x and v1.x</h1>
+
+<div id="from-2-or-1" class="block-content">
+<p id="40023">
+PRADO v3.0 is NOT backward compatible with earlier versions of PRADO.
+</p>
+<p id="40024">
+A good news is, properties and events of most controls remain intact, and the syntax of control templates remains largely unchanged. Therefore, developers' knowledge of earlier versions of PRADO are still applicable in v3.0.
+</p>
+<p id="40025">
+We summarize in the following the most significant changes in v3.0 to help developers upgrade their v2.x and v1.x PRADO applications more easily, if needed.
+</p>
+</div>
+
+<h2 id="502">Component Definition</h2>
+<p id="40026" class="block-content">
+Version 3.0 has completely discarded the need of component specification files. It relies more on conventions for defining component properties and events. In particular, a property is defined by the existence of a getter method and/or a setter method, while an event is defined by the existence of an <tt>on</tt>-method. Property and event names in v3.0 are both case-insensitive. As a consequence, developers are now required to take care of type conversions when a component property is being set. For example, the following code is used to define the setter method for the <tt>Enabled</tt> property of <tt>TControl</tt>, which is of <tt>boolean</tt> type,
+</p>
+<com:TTextHighlighter Language="php" CssClass="block-content source" ID="code1">
+public function setEnabled($value)
+{
+ $value=TPropertyValue::ensureBoolean($value);
+ $this->setViewState('Enabled',$value,true);
+}
+</com:TTextHighlighter>
+<p id="40027" class="block-content">
+where <tt>TPropertyValue::ensureBoolean()</tt> is used to ensure that the input value be a boolean. This is because when the property is configured in template, a string value is passed to the setter. In previous versions, PRADO knows the property type based on the component specification files and does the type conversion for you.
+</p>
+
+<h2 id="503">Application Controller</h2>
+<p id="40028" class="block-content">
+Application controller now implements a modular architecture. Modules can be plugged in and configured in application specifications. Each module assumes a particular functionality, and they are coordinated together by the <a href="?page=Fundamentals.Applications">application lifecycle</a>. The concept of v2.x modules is replaced in v3.0 by <a href="?page=Configurations.PageConfig">page directories</a>. As a result, the format of v3.0 <a href="?page=Configurations.AppConfig">application specification</a> is also different from earlier versions.
+</p>
+
+<h2 id="504">Pages</h2>
+<p id="40029" class="block-content">
+Pages in v3.0 are organized in directories which may be compared to the module concept in v2.x. Pages are requested using the path to them. For example, a URL <tt>index.php?page=Controls.Samples.Sample1</tt> would be used to request for a page named <tt>Sample1</tt> stored under the <tt>[BasePath]/Controls/Samples</tt> directory, where <tt>[BasePath]</tt> refers to the root page path. The file name of a page template must be ended with <tt>.page</tt>, mainly to differentiate page templates from non-page control templates whose file names must be ended with <tt>.tpl</tt>.
+</p>
+
+<h2 id="505">Control Relationship</h2>
+<p id="40030" class="block-content">
+Version 3.0 redefines the relationships between controls. In particular, the parent-child relationship now refers to the enclosure relationship between controls' presentation. And a new naming-container relationship is introduced to help better manage control IDs. For more details, see the <a href="?page=Fundamentals.Controls">controls</a> section.
+</p>
+
+<h2 id="506">Template Syntax</h2>
+<div id="template-syntax" class="block-content">
+<p id="40031">
+The syntax of control templates in v3.0 remains similar to those in earlier versions, with many enhancements. A major change is about the databinding expression. In v3.0, this is done by the following,
+</p>
+<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_40002">
+<com:MyComponent PropertyName=<%# PHP expression %> .../>
+</com:TTextHighlighter>
+<p id="40032">
+Expression and statement tags are also changed similarly. For more details, see the <a href="?page=Configurations.Templates1">template definition</a> section.
+</p>
+</div>
+<h2 id="507">Theme Syntax</h2>
+<p id="40033" class="block-content">
+Themes in v3.0 are defined like control templates with a few restrictions.
+</p>
+
+<div class="last-modified">$Id: Upgrading.page 1650 2007-01-24 06:55:32Z wei $</div></com:TContent>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/GettingStarted/ja/directory.gif b/demos/quickstart/protected/pages/GettingStarted/ja/directory.gif Binary files differnew file mode 100644 index 00000000..e6c4f724 --- /dev/null +++ b/demos/quickstart/protected/pages/GettingStarted/ja/directory.gif diff --git a/demos/quickstart/protected/pages/GettingStarted/ja/sequence.gif b/demos/quickstart/protected/pages/GettingStarted/ja/sequence.gif Binary files differnew file mode 100644 index 00000000..4207a9bb --- /dev/null +++ b/demos/quickstart/protected/pages/GettingStarted/ja/sequence.gif |