/[cvs]/nfo/php/libs/com.newsblob.phphtmllib/widgets/FooterNav.inc
ViewVC logotype

Annotation of /nfo/php/libs/com.newsblob.phphtmllib/widgets/FooterNav.inc

Parent Directory Parent Directory | Revision Log Revision Log


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

1 jonen 1.1 <?php
2    
3     /**
4     * This contains the FooterNav widget and
5     * the FooterNavCSS widget.
6     *
7 jonen 1.4 * $Id: FooterNav.inc,v 1.11 2003/11/04 19:40:21 hemna Exp $
8 jonen 1.1 *
9     * @author Walter A. Boring IV <waboring@buildabetterweb.com>
10     * @package phpHtmlLib
11     *
12     */
13    
14     /**
15     * must have the BaseWidget
16     */
17     require_once( $phphtmllib."/widgets/BaseWidget.inc");
18    
19     /**
20     * Use this class to render footer navigation that
21     * is displayed at the bottom of a page.
22     *
23     * @author Walter A. Boring IV <waboring@buildabetterweb.com>
24     * @package phpHtmlLib
25     */
26     class FooterNav extends BaseWidget {
27    
28     /**
29     * the company name for the copyright
30     * statement.
31     *
32     * @access private
33     * @var string
34     */
35     var $_company_name = "";
36    
37     /**
38     * The date string for the copyright
39     * statement. In form of
40     * "2001-1997", or "2001"
41     *
42     * @access private
43     * @var string
44     */
45     var $_date_string = "";
46    
47     /**
48     * flag to tell us to render the
49     * copyright string or not.
50     * defaults to TRUE (or on)
51     *
52     * @access private
53     * @var boolean
54     */
55     var $_render_copyright = TRUE;
56    
57     /**
58     * url for the Legal statement.
59     * if this is non-null, we will
60     * render the "Legal Notice" link
61     * in the copyright header.
62     *
63     * @access private
64     * @var string
65     */
66     var $_legalnotice_url = NULL;
67    
68     /**
69     * url for the privacy policy.
70     * If this is non-null, we will
71     * render the "Privacy Policy" link
72     * in the copyright header.
73     *
74     * @access private
75     * @var string
76     */
77     var $_privacypolicy_url = NULL;
78    
79     /**
80     * email address to contact web site
81     * maintainer.
82     *
83     * @access private
84     * @var string
85     */
86     var $_webmaster_email = NULL;
87    
88     /**
89     * Constructore for this class.
90     *
91     * @param string $company_name - used in the
92     * - copyright
93     * @param string $date_str - a date string to be used
94     * for the copyright.
95     */
96     function FooterNav( $company_name="", $date_str=NULL ) {
97     $this->set_company_name( $company_name );
98     if ($date_str==NULL) {
99     $year = date("Y");
100     $this->set_date_string($year);
101     }
102     }
103    
104    
105    
106     /**
107     * set the company name for the copyright
108     * statement.
109     *
110     * @param string - $name
111     */
112     function set_company_name( $name ) {
113     $this->_company_name = $name;
114     }
115    
116     /**
117     * set the date string for the copyright.
118     * in the form of "2001-1997", or
119     * "2001".
120     *
121     * @param string - $date_str
122     */
123     function set_date_string( $date_str ) {
124     $this->_date_string = $date_str;
125     }
126    
127     /**
128     * set/unset the flag to tell us to
129     * render the copyright string
130     *
131     * @param boolean - $flag
132     */
133     function set_copyright_flag( $flag ) {
134     $this->_render_copyright = $flag;
135     }
136    
137     /**
138     * set the legal notice url.
139     * if this is set we show the
140     * legal notice link that points to $url.
141     *
142     * @param string - $url
143     */
144     function set_legalnotice_url( $url ) {
145     $this->_legalnotice_url = $url;
146     }
147    
148     /**
149     * sets the Privacy policy url.
150     * if this is set we show the
151     * privacy policy link that points to $url
152     *
153     * @param string - $url
154     */
155     function set_privacypolicy_url( $url ) {
156     $this->_privacypolicy_url = $url;
157     }
158    
159     /**
160     * sets the Webmaster email address
161     * if this is set we show the
162     * mailto for this email
163     *
164     * @param string - $email
165     */
166     function set_webmaster_email( $email ) {
167     $this->_webmaster_email = $email;
168     }
169    
170    
171     /**
172     * add an entry to the footer nav
173     *
174     * @param string - $url - url to go to
175     * @param text - $text - url text to click on.
176     */
177     function add( $url, $text ) {
178     $this->data[] = array( "type" => "url", "url" => $url,
179     "text" => $text );
180     }
181    
182    
183     /**
184     * add an entry to the footer nav.
185     * @deprecated
186     *
187     * @param string - $url - url to go to
188     * @param text - $text - url text to click on.
189     */
190     function push( $url, $text ) {
191     $this->add($url, $text);
192     }
193    
194    
195    
196     //******************************************
197     //* rendering area
198     //******************************************
199    
200    
201     /**
202     * render the code for this widget.
203     *
204     * @param int - the indentation level for
205     * the container.
206     * @param int - the output debug flag to
207     * maintain compatibility w/ the API.
208     *
209     * @return string the raw html output.
210     */
211     function render( $indent_level=1, $output_debug=0) {
212    
213     //build the wrapper table first.
214     $table = $this->build_wrapper_table();
215     $div = html_div("links");
216     $count = count($this->data);
217     if ($count) {
218     $x=0;
219     //now walk thru each item and render it.
220     foreach( $this->data as $item ) {
221     $a = html_a($item['url'], $item['text'], 'foot');
222     $x++;
223     if ($x == $count) {
224     $div->add($a, "&nbsp;&nbsp;&nbsp;");
225     } else {
226     $div->add( $a, "&nbsp;|&nbsp;");
227     }
228     }
229     $table->add_row( $div );
230     }
231    
232     if ($this->_render_copyright) {
233     $table->add_row( $this->build_copyright_header() );
234    
235     }
236    
237     //add the Webmaster email link if Any
238     if ($this->_webmaster_email) {
239     $mailto = mailto($this->_webmaster_email);
240     $mailto->set_class("notice");
241     $table->add_row( html_span("trademark", $mailto));
242     }
243    
244     return $table->render( $indent_level, $output_debug );
245     }
246    
247     /**
248     * render the copyright string
249     *
250     * @return SPANtag object that
251     * contains the copyright
252     * header.
253     */
254     function build_copyright_header() {
255    
256     $span = html_span("trademark");
257 jonen 1.4 $string = "Copyright &copy;";
258 jonen 1.1 $string .= $this->_date_string . ", ";
259     $string .= $this->_company_name. ". All Rights Reserved.&nbsp;&nbsp;";
260     $span->add( $string );
261    
262     //add the Legal notice if any
263     if ($this->_legalnotice_url) {
264     $span->add( html_a($this->_legalnotice_url, "Legal Notice", "notice"),
265     "&nbsp;&nbsp;" );
266     }
267    
268     //add the Privacy notice if any
269     if ($this->_privacypolicy_url) {
270     $span->push( html_a($this->_privacypolicy_url, "Privacy Policy", "notice"),
271     "&nbsp;&nbsp;" );
272     }
273    
274     return $span;
275     }
276    
277    
278     /**
279     * builds the wrapper table
280     *
281     * @return TABLEtag object.
282     */
283     function build_wrapper_table() {
284     $table = html_table($this->width, 0, 2, 0);
285     $table->set_id("footernav");
286     $table->set_default_col_attributes( array("align" => "center") );
287     return $table;
288     }
289     }
290    
291    
292    
293     /**
294     * This class defines the css used by the
295     * FooterNav Object.
296     *
297     * @author Walter A. Boring IV <waboring@buildabetterweb.com>
298     * @package phpHtmlLib
299     */
300     class FooterNavCSS extends CSSBuilder {
301    
302     function user_setup() {
303     $this->add_entry("#footernav", NULL,
304     array("font-family" => "arial,verdana,helvetica",
305     "color" => "#4141FF") );
306    
307     $this->add_entry("#footernav", "div.links",
308     array("font-size" => "10px",
309     "line-height" => "10px",
310     "margin" => "15px 0px 10px 0px") );
311    
312     $this->add_entry("#footernav","A.foot:active, A.foot:link, A.foot:visited",
313     array("font-size" => "12px",
314     "color" => "#4141FF") );
315    
316     $this->add_entry("#footernav", "A.foot:hover",
317     array("color" => "#FFFFFF",
318     "background-color" => "#4141FF",
319     "text-decoration" => "none") );
320    
321     $this->add_entry("#footernav", "A.notice:active,A.notice:link,A.notice:visited",
322     array("font-size" => "11px",
323     "color" => "#4141FF") );
324    
325     $this->add_entry("#footernav", "A.notice:hover",
326     array("color" => "#FFFFFF",
327     "background-color" => "#4141FF",
328     "text-decoration" => "none") );
329    
330     $this->add_entry("#footernav", "SPAN.trademark",
331     array("font-size" => "11px",
332     "color" => "#000000"));
333    
334     }
335     }
336     ?>

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