/[cvs]/nfo/php/libs/com.newsblob.phphtmllib/examples/example3.php
ViewVC logotype

Annotation of /nfo/php/libs/com.newsblob.phphtmllib/examples/example3.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations)
Thu May 6 16:27:17 2004 UTC (20 years, 2 months ago) by jonen
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +0 -0 lines
 updated all to v2.4.1 - Apr 01, 2004

1 jonen 1.1 <?php
2    
3     /**
4     * Another example of how to build a
5     * parent PageWidget object to provide
6     * a base class for building a consistent
7     * look/feel accross a web application.
8     *
9     *
10     * $Id: example3.php,v 1.5 2002/10/03 18:39:25 hemna Exp $
11     *
12     * @author Walter A. Boring IV <waboring@buildabetterweb.com>
13     * @package phpHtmlLib
14     * @subpackage examples
15     * @version 2.0.0
16     *
17     */
18    
19     /**
20     * Include the phphtmllib libraries
21     */
22     include_once("includes.inc");
23    
24    
25     //Some applications want to provide a
26     //consistent layout with some common
27     //elements that always live on each
28     //page.
29     // An easy way to do that is to
30     //build a child class to the
31     //PageWidget object that defines the
32     //layout in logical blocks named as
33     //methods.
34    
35     //For example, A common layout is
36     //to have a header block at the top,
37     //followed by a content block, which
38     //contains a left block, and right block.
39     //followed by a footer block.
40    
41     // --------------------------------
42     // | header block |
43     // --------------------------------
44     // | | | <- Main
45     // | left | right block | <- block
46     // | block | | <-
47     // | | | <-
48     // --------------------------------
49     // | footer block |
50     // --------------------------------
51    
52     //You would then define 6 methods in
53     //the child to PageWidget named
54     //body_content() - contains the outer most
55     // layout
56     //
57     //header_block() - builds the content for
58     // the header block, which
59     // stays the same among
60     // many pages.
61     //
62     //main_block() - which builds the left
63     // block (typically used for
64     // navigation), and the
65     // main content block
66     //left_block() - contains the left
67     // navigational elements
68     //content_block() - the main content for any
69     // page's specific data.
70     //
71     //footer_block() - which contains any
72     // footer information that
73     // remains the same on all
74     // pages.
75    
76     //The nice thing about this approach is,
77     //on each page of your application,
78     //you only have to override the methods
79     //for the content blocks that are different
80     //or specific to that page. The other content
81     //blocks and layout is automatically built
82     //from the parent class.
83    
84     //most of the time your page will only
85     //override the content_block() method, which
86     //is the right block content that changes
87     //from page to page.
88    
89     //This is exactly how this website is built.
90    
91     //enable the automatic detection of debugging
92     define("DEBUG", TRUE);
93    
94     class MyLayoutPage extends PageWidget {
95    
96    
97     /**
98     * This is the constructor.
99     *
100     * @param string - $title - the title for the page and the
101     * titlebar object.
102     * @param - string - The render type (HTML, XHTML, etc. )
103     *
104     */
105     function MyLayoutPage($title, $render_type = HTML) {
106    
107     $this->PageWidget( $title, $render_type );
108    
109     //add some css links
110     //assuming that phphtmllib is installed in the doc root
111     $this->add_css_link("/phphtmllib/examples/css/main.css");
112     $this->add_css_link("/phphtmllib/css/fonts.css");
113     $this->add_css_link("/phphtmllib/css/colors.css");
114    
115     //add the phphtmllib widget css
116     $this->add_css_link( "/phphtmllib/css/bluetheme.php" );
117     }
118    
119     /**
120     * This builds the main content for the
121     * page.
122     *
123     */
124     function body_content() {
125    
126     //add the header area
127     $this->add( html_comment( "HEADER BLOCK BEGIN") );
128     $this->add( $this->header_block() );
129     $this->add( html_comment( "HEADER BLOCK END") );
130    
131     //add it to the page
132     //build the outer wrapper div
133     //that everything will live under
134     $wrapper_div = html_div();
135     $wrapper_div->set_id( "phphtmllib" );
136    
137     //add the main body
138     $wrapper_div->add( html_comment( "MAIN BLOCK BEGIN") );
139     $wrapper_div->add( $this->main_block() );
140     $wrapper_div->add( html_comment( "MAIN BLOCK END") );
141    
142     $this->add( $wrapper_div );
143    
144     //add the footer area.
145     $this->add( html_comment( "FOOTER BLOCK BEGIN") );
146     $this->add( $this->footer_block() );
147     $this->add( html_comment( "FOOTER BLOCK END") );
148    
149     }
150    
151    
152     /**
153     * This function is responsible for building
154     * the header block that lives at the top
155     * of every page.
156     *
157     * @return HTMLtag object.
158     */
159     function header_block() {
160     $header = html_div("pageheader");
161    
162     $header->add( "HEADER BLOCK AREA" );
163     return $header;
164     }
165    
166    
167     /**
168     * We override this method to automatically
169     * break up the main block into a
170     * left block and a right block
171     *
172     * @param TABLEtag object.
173     */
174     function main_block() {
175    
176     $main = html_div();
177     $main->set_id("maincontent");
178    
179     $table = html_table("100%",0);
180     $left_div = html_div("leftblock", $this->left_block() );
181    
182     $table->add_row( html_td("leftblock", "", $left_div ),
183     html_td("divider", "", "&nbsp;"),
184     html_td("rightblock", "", $this->content_block() ));
185     $main->add( $table );
186    
187     return $main;
188     }
189    
190    
191     /**
192     * this function returns the contents
193     * of the left block. It is already wrapped
194     * in a TD
195     *
196     * @return HTMLTag object
197     */
198     function left_block() {
199     $div = html_div();
200     $div->set_style("padding-left: 6px;");
201    
202     $div->add( "LEFT BLOCK" );
203     return $div;
204     }
205    
206    
207    
208     /**
209     * this function returns the contents
210     * of the right block. It is already wrapped
211     * in a TD
212     *
213     * @return HTMLTag object
214     */
215     function content_block() {
216     $container = container( "CONTENT BLOCK", html_br(2),
217     html_a($_SERVER["PHP_SELF"]."?debug=1",
218     "Show Debug source"),
219     html_br(10));
220     return $container;
221     }
222    
223    
224     /**
225     * This function is responsible for building
226     * the footer block for every page.
227     *
228     * @return HTMLtag object.
229     */
230     function footer_block() {
231    
232     $footer_div = html_div();
233     $footer_div->set_tag_attribute("id", "footerblock");
234     $footer_div->add("FOOTER BLOCK");
235    
236     return $footer_div;
237     }
238     }
239    
240    
241     $page = new MyLayoutPage("phpHtmlLib Example 3 - PageWidget child");
242    
243    
244     //this will render the entire page
245     print $page->render();
246     ?>

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed