diff options
| author | wei <> | 2007-01-11 05:06:31 +0000 | 
|---|---|---|
| committer | wei <> | 2007-01-11 05:06:31 +0000 | 
| commit | 65731b050199ab7ecdd4027fa2d65f2175fe561e (patch) | |
| tree | 45998ad5dec4d3caec932d663acc9fed9522f09f /demos/quickstart/protected | |
| parent | 03f362a40a8dd39f8c8b4bf816334922b7b264e4 (diff) | |
Add structure for localized quickstart.
Diffstat (limited to 'demos/quickstart/protected')
6 files changed, 89 insertions, 3 deletions
| diff --git a/demos/quickstart/protected/QuickStartGlobalization.php b/demos/quickstart/protected/QuickStartGlobalization.php new file mode 100644 index 00000000..6a0b0fb2 --- /dev/null +++ b/demos/quickstart/protected/QuickStartGlobalization.php @@ -0,0 +1,31 @@ +<?php
 +
 +class QuickStartGlobalization extends TGlobalizationAutoDetect
 +{
 +	public function init($xml)
 +	{
 +		parent::init($xml);
 +		$this->Application->OnBeginRequest[] = array($this, 'beginRequest');
 +	}
 +
 +	public function beginRequest($sender, $param)
 +	{
 +		if(null == ($culture=$this->Request['lang']))
 +		{
 +			if(null !== ($cookie=$this->Request->Cookies['lang']))
 +				$culture = $cookie->getValue();
 +		}
 +
 +		if(is_string($culture))
 +		{
 +			$info = new CultureInfo();
 +			if($info->validCulture($culture))
 +			{
 +				$this->setCulture($culture);
 +				$this->Response->Cookies[] = new THttpCookie('lang',$culture);
 +			}
 +		}
 +	}
 +}
 +
 +?>
\ No newline at end of file diff --git a/demos/quickstart/protected/application.xml b/demos/quickstart/protected/application.xml index 3e2374d8..777dd86b 100644 --- a/demos/quickstart/protected/application.xml +++ b/demos/quickstart/protected/application.xml @@ -1,6 +1,11 @@  <?xml version="1.0" encoding="utf-8"?>
  <application id="QuickStart" Mode="Debug">
 +  <paths>
 +    <using namespace="Application.controls.*" />
 +	<using namespace="System.I18N.*" />
 +  </paths>
 +
    <modules>
      <!-- uncomment the following to enable caching
      <module id="cache" class="System.Caching.TSqliteCache" />
 @@ -13,11 +18,17 @@     <module id="quickstart_search" 
      	class="Application.index.ZendSearch"
      	IndexDataDirectory="Application.index.quickstart" />
 +
 +	<module id="globalization" class="Application.QuickStartGlobalization" Charset="UTF-8"/>
    </modules>
 -  <paths>
 -    <using namespace="Application.controls.*" />
 -  </paths>
    <services>
      <service id="page" class="TPageService" DefaultPage="GettingStarted.Introduction" />
    </services>
 +
 +<!--
 +  <parameters>
 +		<parameter id="languages" value="('en'=>'English', 'fr'=>'Français', 'zh' => '中文(简体)')" />
 +  </parameters>
 +-->
 +
  </application>
\ No newline at end of file diff --git a/demos/quickstart/protected/controls/Layout.php b/demos/quickstart/protected/controls/Layout.php index 7c2cbd85..e4f2fc1a 100644 --- a/demos/quickstart/protected/controls/Layout.php +++ b/demos/quickstart/protected/controls/Layout.php @@ -24,6 +24,24 @@ class Layout extends TTemplateControl  			$this->MainMenu->Visible=false;
  			$this->TopicPanel->Visible=false;
  		}
 +
 +		$this->languages->DataSource = TPropertyValue::ensureArray($this->Application->Parameters['languages']);
 +		$this->languages->dataBind();
 +	}
 +
 +	public function language_links($sender, $param)
 +	{
 +		$item = $param->Item;
 +		if($item->ItemType == TListItemType::Item || $item->ItemType == TListItemType::AlternatingItem)
 +		{
 +			$params = $this->Request->toArray();
 +			$params['lang'] = $sender->DataKeys[$item->ItemIndex];
 +			unset($params[$this->Request->ServiceID]);
 +			$url = $this->Service->ConstructUrl($this->Service->RequestedPagePath, $params);
 +			$item->link->NavigateUrl = $url;
 +			if($this->Application->Globalization->Culture == $params['lang'])
 +				$item->link->CssClass="active";
 +		}
  	}
  }
 diff --git a/demos/quickstart/protected/controls/Layout.tpl b/demos/quickstart/protected/controls/Layout.tpl index 52ab5bc4..87013156 100644 --- a/demos/quickstart/protected/controls/Layout.tpl +++ b/demos/quickstart/protected/controls/Layout.tpl @@ -29,6 +29,18 @@  <com:TopicList ID="TopicPanel" />
  </td>
  <td valign="top">
 +
 +<com:TRepeater ID="languages" OnItemCreated="language_links">
 +	<prop:HeaderTemplate>
 +		<div class="languages">Available 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">
  <com:TContentPlaceHolder ID="body" />
  </div>
 diff --git a/demos/quickstart/protected/controls/fr/TopicList.tpl b/demos/quickstart/protected/controls/fr/TopicList.tpl new file mode 100644 index 00000000..048f00fd --- /dev/null +++ b/demos/quickstart/protected/controls/fr/TopicList.tpl @@ -0,0 +1,10 @@ +<div id="toc">
 +
 +<div class="topic">
 +<div>Getting Started</div>
 +<ul>
 +    <li><a href="?page=GettingStarted.Introduction">Introduction</a></li>
 +</ul>
 +</div>
 +
 +</div>
\ No newline at end of file diff --git a/demos/quickstart/protected/pages/GettingStarted/fr/Introduction.page b/demos/quickstart/protected/pages/GettingStarted/fr/Introduction.page new file mode 100644 index 00000000..a44319fa --- /dev/null +++ b/demos/quickstart/protected/pages/GettingStarted/fr/Introduction.page @@ -0,0 +1,4 @@ +<com:TContent ID="body" >
 +<h1 id="101">French Intro</h1>
 +
 +</com:TContent>
\ No newline at end of file | 
