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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations)
Thu May 6 16:27:42 2004 UTC (20 years, 3 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     * This contains the TextNav widget
5     *
6 jonen 1.3 * $Id: TextNav.inc,v 1.12 2003/02/24 21:37:46 hemna Exp $
7 jonen 1.1 *
8     * @author Walter A. Boring IV <waboring@buildabetterweb.com>
9     * @package phpHtmlLib
10     *
11     */
12    
13     /**
14     * must have the BaseWidget
15     */
16     require_once( $phphtmllib."/widgets/BaseWidget.inc");
17    
18     /**
19     * This class builds a simple text navigational
20     * widget.
21     * @author Walter A. Boring IV <waboring@buildabetterweb.com>
22     * @package phpHtmlLib
23     */
24     class TextNav extends BaseWidget {
25    
26    
27     /**
28     * Constructor for this class
29     * It just sets the width for the
30     * widget.
31     *
32     * @param int $width - the width of the widget
33     */
34     function TextNav( $width = 760 ) {
35     $this->set_width( $width );
36     }
37    
38    
39     /**
40     * function that will render the widget.
41     *
42     * @param int - the indentation level for
43     * the container.
44     * @param int - the output debug flag to
45     * maintain compatibility w/ the API.
46     *
47     * @return string the raw html output.
48     *
49     */
50     function render( $indent_level=1, $output_debug=0) {
51    
52     $table = html_table($this->width, 0, 0, 2);
53     $table->set_style("border-top-color: #eeeeee;border-width: 1px;".
54     "border-left-color: #eeeeee;".
55     "border-right-color: #eeeeee;".
56     "border-bottom-color: #eeeeee;");
57     $tr = new TRtag;
58    
59     $this->count = count($this->data);
60    
61     $cnt=1;
62     foreach( $this->data as $nav) {
63     $nav_td = $this->build_nav_td( $nav, $cnt );
64     $cnt++;
65     //$img_td = $this->build_img_td();
66     $tr->add( $nav_td );
67     }
68     $table->add( $tr );
69    
70     return $table->render( $indent_level, $output_debug );
71     }
72    
73    
74     //functions for adding/updating data
75    
76     /**
77     * this function adds a clickable link.
78     * It automatically adds the link based on $url,
79     * with $text as the viewable text.
80     *
81     * @param string - the url for the link
82     * @param string - the link text
83     * @param string - the width of the cell
84     * @param string - the target for the url
85     */
86     function add($url, $text, $width = 100, $target=NULL) {
87     array_push($this->data, array("type"=>"url", "url"=>$url,
88     "text"=>$text, "width" => $width,
89     "target" => $target));
90     }
91    
92     /**
93     * depricated version of add()
94     *
95     * @deprecated - use add() instead
96     */
97     function push($url, $text, $width = 100) {
98     $this->add($url, $text, $width);
99     }
100    
101     /**
102     * This lets you add a blank entry
103     * between 2 links
104     *
105     * @param int - the # of blank lines to insert
106     */
107     function add_blank( $num = 1 ) {
108     for ($x=1; $x<=$num; $x++)
109     array_push($this->data, array( "type"=>"blank" ));
110     }
111    
112     /**
113     * depricated version of add_blank()
114     *
115     * @deprecated - use add_blank() instead
116     */
117     function push_blank( $num = 1 ) {
118     $this->add_blank( $num );
119     }
120    
121     /**
122     * this adds a text item in the nav
123     *
124     * @param string - the text to display
125     */
126     function add_text( $text ) {
127     array_push($this->data, array( "type"=>"text", "text"=>$text ));
128     }
129    
130     /**
131     * depricated version of add_text()
132     *
133     * @deprecated - use add_text() instead
134     */
135     function push_text( $text ) {
136     $this->add_text( $text );
137     }
138    
139    
140     /**
141     * build a td for the link.
142     *
143     * @param array - the nav array entry
144     * @param int - the column # this entry is
145     *
146     */
147     function build_nav_td( $nav, $count ) {
148     $td = html_td("textnavtd", "center");
149     $style = "width: ".$nav["width"].";";
150    
151     if ($count != $this->count) {
152     $style .= "border-right-color:#eeeeee;border-width:2px;";
153     }
154     $td->set_style( $style );
155     $td->set_collapse();
156    
157     switch ($nav['type']) {
158     case 'url':
159     $text = str_replace(' ', "&nbsp;", $nav['text'] );
160     $content = html_a( $nav['url'], '&nbsp;' . $text . '&nbsp;',
161     "textnavlist", $nav['target']);
162     break;
163     case 'blank':
164     $content = "&nbsp;";
165     }
166     $td->add( $content );
167     return $td;
168     }
169    
170     /**
171     * build the image seperator td
172     *
173     */
174     function build_img_td() {
175    
176     $td = html_td("textnavdivider");
177     $td->set_style("width: 1px;");
178     $td->set_collapse();
179    
180     $img = html_img("/phphtmllib/widgets/images/dot_clear.gif", 1, 1, 0);
181     $td->add( $img );
182     return $td;
183     }
184     }
185    
186    
187     /**
188     * This class defines the css used by the
189     * TextNav Object.
190     *
191     * @author Walter A. Boring IV <waboring@buildabetterweb.com>
192     * @package phpHtmlLib
193     */
194     class TextNavCSS extends CSSBuilder {
195    
196     function user_setup() {
197    
198     $this->add_entry("A.textnavlist:hover", "",
199     array("color" => "#FF0000") );
200    
201     $this->add_entry("A.textnavlist", "",
202     array("font-family" => "Arial, Helvetica, sans-serif",
203     "font-size" => "10pt",
204     "font-weight" => "bold",
205 jonen 1.3 "color" => "#FFFFFF",
206 jonen 1.1 "text-decoration" => "none"));
207    
208     $this->add_entry("TD.textnavdivider", "",
209     array("background-image" =>
210     "url('/phphtmllib/widgets/images/dot_div_vert.gif')"));
211    
212     $this->add_entry("TD.textnavtd", "",
213 jonen 1.3 array("background-color" => "#999999"));
214 jonen 1.1
215     }
216     }
217     ?>

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