From 3f4996918079443d774788f32fb692d1d463b1c2 Mon Sep 17 00:00:00 2001 From: wei <> Date: Fri, 22 Sep 2006 23:39:13 +0000 Subject: Add Url Mapping docs. --- .gitattributes | 1 + HISTORY | 1 + buildscripts/texbuilder/pages.php | 4 +- demos/blog/protected/application.xml | 5 ++ demos/quickstart/protected/controls/TopicList.tpl | 1 + .../protected/pages/Configurations/UrlMapping.page | 75 ++++++++++++++++++++++ 6 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 demos/quickstart/protected/pages/Configurations/UrlMapping.page diff --git a/.gitattributes b/.gitattributes index 6151c07d..5f00c740 100644 --- a/.gitattributes +++ b/.gitattributes @@ -806,6 +806,7 @@ demos/quickstart/protected/pages/Configurations/PageConfig.page -text demos/quickstart/protected/pages/Configurations/Templates1.page -text demos/quickstart/protected/pages/Configurations/Templates2.page -text demos/quickstart/protected/pages/Configurations/Templates3.page -text +demos/quickstart/protected/pages/Configurations/UrlMapping.page -text demos/quickstart/protected/pages/Construction.page -text demos/quickstart/protected/pages/Controls/Button.page -text demos/quickstart/protected/pages/Controls/CheckBox.page -text diff --git a/HISTORY b/HISTORY index 4b7dc4d1..60b71526 100644 --- a/HISTORY +++ b/HISTORY @@ -7,6 +7,7 @@ ENH: Added an interactive PHP shell, usage: "prado-cli.php shell" (Wei) ENH: Ticket#379 - TAuthorizationRule performance enhancement (Qiang) ENH: Easier to customize the TDatePicker using CssClass (Wei) NEW: TLiteralColumn (Qiang) +NSW: TUrlMapping (Wei) Version 3.0.4 September 4, 2006 =============================== diff --git a/buildscripts/texbuilder/pages.php b/buildscripts/texbuilder/pages.php index 4d285162..44728924 100644 --- a/buildscripts/texbuilder/pages.php +++ b/buildscripts/texbuilder/pages.php @@ -29,7 +29,9 @@ $pages['Configurations'] = array( 'Configurations/Templates2.page', 'Configurations/Templates3.page', 'Configurations/AppConfig.page', - 'Configurations/PageConfig.page'); + 'Configurations/PageConfig.page', + 'Configurations/UrlMapping.page' + ); $pages['Control Reference : Standard Controls'] = array( 'Controls/Button.page', diff --git a/demos/blog/protected/application.xml b/demos/blog/protected/application.xml index 4a18c74b..f15c4fe4 100644 --- a/demos/blog/protected/application.xml +++ b/demos/blog/protected/application.xml @@ -15,6 +15,11 @@ + + + + + diff --git a/demos/quickstart/protected/controls/TopicList.tpl b/demos/quickstart/protected/controls/TopicList.tpl index 677a727e..1b0bfb2f 100644 --- a/demos/quickstart/protected/controls/TopicList.tpl +++ b/demos/quickstart/protected/controls/TopicList.tpl @@ -35,6 +35,7 @@
  • Templates: Part III
  • Application Configurations
  • Page Configurations
  • +
  • URL Mapping (Friendly URLs)
  • diff --git a/demos/quickstart/protected/pages/Configurations/UrlMapping.page b/demos/quickstart/protected/pages/Configurations/UrlMapping.page new file mode 100644 index 00000000..22cb866a --- /dev/null +++ b/demos/quickstart/protected/pages/Configurations/UrlMapping.page @@ -0,0 +1,75 @@ + + +

    URL Mapping (Friendly URLs)

    + + + +

    Using the TUrlMapping module different URLs can be +mapped into any existing Prado pages or services. This allows +the application to use nice looking and friendly URLs. +

    + +

    +The TUrlMapping module allows aributary URL path to be mapped to a +particular service and page class. This module must be configured +before a service is initialized, thus this module should be configured +globally in the application configuration +file and before any services. +

    + +

    The mapping format is as follows. + + + + + +

    + +

    The PageClass set the name of class that the matched URL will +be requested.

    The Pattern and Parameters attribute +values are regular expression patterns that +determine the mapping criteria. The Pattern property takes +a regular expression with parameter names enclosed between a left brace '{' +and a right brace '}'. The pattens for each parameter can be set +using Parametersattribute collection. +For example, + + + +

    +The example is equivalent, using regular expression only, to + + +\d{4})/(?P\d{2})/(?P\d+) +]]> + + +

    +In the above example, the pattern contains 3 parameters named "year", +"month" and "day". The pattern for these parameters are, +respectively, "\d{4}" (4 digits), "\d{2}" (2 digits) +and "\d+" (1 or more digits). +

    + +

    For example, an URL "http://example.com/index.php/articles/2006/07/21" will be matched +and valid. However, "http://example.com/index.php/articles/2006/07/hello" is not + valid since the "day" parameter pattern is not satisfied. + In the default TUrlMappingPattern class, the pattern is matched against the +path property of the URL only. For example, only the +"/index.php/articles/2006/07/21" portion of the URL is considered and the rest +is ignored. +

    + + +

    The parameter values are available through the standard Request +object. For example, $this->Request['year']. +

    + +

    The URL mapping are evaluated in order they are place and only the first mapping that matches + the URL will be used. Cascaded mapping can be achieved by placing the URL mappings + in particular order. For example, placing the most specific mappings first. +

    + +
    \ No newline at end of file -- cgit v1.2.3