System.Web.TUrlMapping API Reference
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 theapplication configurationfile and before any services.
Info: The TUrlMapping must be configured before theRequest moduleresolves the request. This usually means delcaring the TUrlMapping module before any <services> tag in the
application configuration. Specifying the mappings in the per directory config.xml is not supported.
To use TUrlMapping, one must set the UrlManager property of the THttpRequest module as the TUrlMapping module ID. See following for an example,
6.7. URL Mapping (Friendly URLs)
<modules>
<module id="request" class="THttpRequest" UrlManager="friendly-url" /> <module id="friendly-url" class="System.Web.TUrlMapping">
<url ServiceParameter="Posts.ViewPost" pattern="post/{id}/?" parameters.id="\d+" />
<url ServiceParameter="Posts.ListPost" pattern="archive/{time}/?" parameters.time="\d{6}" /> <url ServiceParameter="Posts.ListPost" pattern="category/{cat}/?" parameters.cat="\d+" /> </module>
</modules>
The above example is part of the application configuration of the blog demo in the PRADO release. It enables recognition of the following URL formats:
• /index.php/post/123 is recognized as /index.php?page=Posts.ViewPost&id=123
• /index.php/archive/200605 is recognized as /index.php?page=Posts.ListPost&time=200605 • /index.php/category/2 is recognized as /index.php?page=Posts.ListPost&cat=2
The ServiceParameter and ServiceID (the default ID is ‘page’) set the service parameter and service ID, respectively, of the Request module. The service parameter for the TPageService service is the Page class name, e.g., for an URL “index.php?page=Home”, “page” is the service ID and the service parameter is “Home”. Other services may use the service parameter and ID differently. SeeServicesfor further details.
6.7.1
Specifying URL Patterns
TUrlMapping enables recognition of customized URL formats based on a list prespecified of URL patterns. Each pattern is specified in a <url> tag.
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,
<url ServiceParameter="ArticleView" pattern="articles/{year}/{month}/{day}" parameters.year="\d{4}" parameters.month="\d{2}" parameters.day="\d+" />
The example is equivalent to the following regular expression (it uses the “named group” feature in regular expressions available in PHP):
<url ServiceParmaeter="ArticleView"> <![CDATA[
/articles\/(?P<year>\d{4})\/(?P<month>\d{2})\/(?P<day>\d+)/u ]]>
</url>
In the above example, the pattern contains 3 parameters named “year”, “month” and “day”. The pattern for these parameters are, respectively, “{
.4}” (4 digits), “{.2}” (2 digits) and “+.” (1 or more digits). Essentially, the Parameters attribute name and values are used as substrings in replacing the placeholders in the Pattern string to form a complete regular expression string.
Note: If you intended to use the RegularExpression property you need to escape the slash in regular expressions.
Following from the above pattern 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.
The mapped request URL is equivalent to index.php?page=ArticleView&year=2006&month=07&day=21. The request 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.
6.7.2
Constructing Customized URLs
Since version 3.0.6, TUrlMapping starts to support constructing customized URL formats. This is achieved by allowing users to extend TUrlMapping class and override the constructUrl method. In the applications, users can still use THttpRequest.constructUrl() or TPageService.constructUrl() to generate PRADO-recognizable URLS. The actual URL construction work is ultimately delegated to the TUrlMapping.constructUrl(), provided it is implemented.
Chapter 7
Control Reference : Standard
Controls
7.1
TButton
System.Web.UI.WebControls.TButton API Reference
TButton creates a click button on a Web page. The button’s caption is specified by Text property. A button is used to submit data to a page. TButton raises two server-side events, OnClick and OnCommand, when it is clicked on the client-side. The difference between OnClick and OnCommand events is that the latter event is bubbled up to the button’s ancestor controls. An OnCommand event handler can use CommandName and CommandParameter associated with the event to perform specific actions.
Clicking on button can trigger form validation, if CausesValidation is true. And the validation may be restricted within a certain group of validator controls according to ValidationGroup.
Controls.Samples.TButton.Home Demo