root/trunk/src/main/php/net/stubbles/websites/stubAbstractPageFactory.php

Revision 1547, 2.6 kB (checked in by mikey, 3 months ago)

refactoring #139, part 6: moved net::stubbles::util::validators to net::stubbles::ipo::request::validators

Line 
1 <?php
2 /**
3  * Abstract base implementation a page factory.
4  *
5  * @author      Frank Kleine <mikey@stubbles.net>
6  * @package     stubbles
7  * @subpackage  websites
8  */
9 stubClassLoader::load('net::stubbles::ipo::request::validator::stubRegexValidator',
10                       'net::stubbles::websites::stubPageFactory'
11 );
12 /**
13  * Abstract base implementation a page factory.
14  *
15  * @package     stubbles
16  * @subpackage  websites
17  */
18 abstract class stubAbstractPageFactory extends stubBaseObject implements stubPageFactory
19 {
20     /**
21      * prefix for page names
22      *
23      * @var  string
24      */
25     protected $pagePrefix       = null;
26     /**
27      * name of home page
28      *
29      * @var  string
30      */
31     protected $indexPageName    = 'index';
32     /**
33      * name of request param containing the page name
34      *
35      * @var  string
36      */
37     protected $requestParamName = 'page';
38
39     /**
40      * sets page name prefix
41      *
42      * @param  string  $pagePrefix
43      */
44     public function setPagePrefix($pagePrefix)
45     {
46         $this->pagePrefix = $pagePrefix;
47     }
48
49     /**
50      * sets name of home page
51      *
52      * @param  string  $indexPageName
53      */
54     public function setIndexPageName($indexPageName)
55     {
56         $this->indexPageName = $indexPageName;
57     }
58
59     /**
60      * sets the name of the request parameter containing the page name
61      *
62      * @param  string  $requestParamName
63      */
64     public function setRequestParamName($requestParamName)
65     {
66         $this->requestParamName = $requestParamName;
67     }
68
69     /**
70      * retrieves the page name
71      *
72      * @param   stubRequest  $request
73      * @return  string
74      */
75     public function getPageName(stubRequest $request)
76     {
77         if ($request->hasValue($this->requestParamName) === true) {
78             $pageName = $request->getValidatedValue(new stubRegexValidator('/([a-zA-Z0-9_])/'), $this->requestParamName);
79             if (null != $pageName && $this->hasPage($pageName) === true) {
80                 return $pageName;
81             }
82         }
83
84         return $this->indexPageName;
85     }
86
87     /**
88      * returns the configured stubPage instance
89      *
90      * @param   string    $pageName  name of the page to retrieve
91      * @return  stubPage
92      */
93     public function getPage($pageName)
94     {
95         $page = $this->doGetPage($pageName);
96         $page->setProperty('name', $pageName);
97         $page->setProperty('fqname', $this->pagePrefix . $pageName);
98         return $page;
99     }
100     
101     
102     /**
103      * returns the configured stubPage instance
104      *
105      * @param   string    $pageName  name of the page to retrieve
106      * @return  stubPage
107      */
108     protected abstract function doGetPage($pageName);
109 }
110 ?>
Note: See TracBrowser for help on using the browser.