/[cvs]/nfo/php/libs/org.netfrag.glib/utils/links.php
ViewVC logotype

Contents of /nfo/php/libs/org.netfrag.glib/utils/links.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show annotations)
Fri Apr 11 00:58:08 2003 UTC (21 years, 4 months ago) by joko
Branch: MAIN
Changes since 1.3: +25 -1 lines
+ link::plain
+ url::viewdatanode

1 <?
2 /*
3 ## -------------------------------------------------------------------------
4 ## $Id: links.php,v 1.3 2003/04/08 22:38:43 joko Exp $
5 ## -------------------------------------------------------------------------
6 ## $Log: links.php,v $
7 ## Revision 1.3 2003/04/08 22:38:43 joko
8 ## NEW: 'class url' as code container for some shortcut functions
9 ##
10 ## Revision 1.2 2003/04/08 17:56:09 joko
11 ## bugfixes
12 ##
13 ## Revision 1.1 2003/04/06 04:30:10 joko
14 ## initial commit
15 ##
16 ## Revision 1.8 2003/04/04 02:00:54 joko
17 ## modified rTopic
18 ## new: jsAnchor
19 ##
20 ## Revision 1.7 2003/03/28 03:09:49 joko
21 ## + function pageLink
22 ##
23 ## Revision 1.6 2003/02/28 04:30:45 joko
24 ## + new shortcuts to build links/urls directly to topics etc.
25 ##
26 ## Revision 1.5 2003/02/27 18:07:49 joko
27 ## + new functions: rPage, rLink
28 ##
29 ## Revision 1.4 2003/02/22 17:38:17 cvsmax
30 ## + added array_merge of GET and POST vars
31 ##
32 ## Revision 1.3 2003/02/22 16:41:58 joko
33 ## renamed core functions
34 ##
35 ## Revision 1.2 2003/02/20 22:42:10 joko
36 ## + functions rAnchor and rLink
37 ##
38 ## Revision 1.1 2003/02/17 01:12:17 joko
39 ## + initial commit
40 ##
41 ## -------------------------------------------------------------------------
42 */
43
44
45 require_once("LinkBuilder.php");
46
47 class link {
48
49 // shortcut to 'LinkBuilder'
50 function store($link_vars = array()) {
51 $linkbuilder = new LinkBuilder();
52 $link_guid = $linkbuilder->save($link_vars);
53 return $link_guid;
54 }
55
56 // shortcut to 'LinkBuilder'
57 function restore($guid) {
58 $linkbuilder = new LinkBuilder();
59 return $linkbuilder->load($guid);
60 }
61
62 // shortcut to render a html-link triggering a function
63 // in the global javascript scope of the user agent
64 function js_function($js_function, $js_args = array(), $caption) {
65 $bufarr = array();
66 foreach ($js_args as $arg) {
67 array_push($bufarr, "'$arg'");
68 }
69 $bufstr = join(', ', $bufarr);
70 return html_a("javascript:$js_function($bufstr);", $caption);
71 }
72
73 function topic($topic_name, $args = array()) {
74 $css_class = $args[_css_class];
75 unset($args[_css_class]);
76 $query_string = linkargs::topic($topic_name, $args);
77 return html_a($query_string, $topic_name, $css_class);
78 }
79
80 function page($caption = null, $args = array(), $identifier = null) {
81 // manipulate args, merge in non-existent, but required attributes (e.g. 'ap')
82 // FIXME: do this more generic! use array_merge for this purpose?
83 $opts = array_merge($_GET, $_POST);
84 if (!$args[ap]) { $args[ap] = $opts[ap]; }
85 $query_string = url::query($args);
86 return html_a($query_string, $caption);
87 }
88
89 function action($action_name, $args = array()) {
90 $query_string = linkargs::action($action_name, $args);
91 return html_a($query_string, "[$action_name]");
92 }
93
94 function plain($url, $caption = '') {
95 if (!$caption) { $caption = $url; }
96 return html_a($url, $caption);
97 }
98
99 }
100
101 class ref {
102
103 function action($action, $args = array()) {
104 $args[action] = $action;
105 return rAnchor($action, $args);
106 }
107
108 function page($page_ident, $args = array()) {
109 $args[ap] = $page_ident;
110 return rAnchor($action, $args);
111 }
112
113 function link($caption, $page_ident) {
114 $args[ap] = $page_ident;
115 return rAnchor($caption, $args);
116 }
117
118 }
119
120
121
122 class linkargs {
123
124 function page($page_name, $args = array()) {
125 $args[ap] = $page_name;
126 //unset($args[ap]);
127 return url::query($args);
128 }
129
130 function topic($topic_name, $args = array()) {
131 $args[t] = $topic_name;
132 //unset($args[ap]);
133 return url::query($args);
134 }
135
136 function action($action_name, $args = array()) {
137 $args[ga] = $action_name;
138 return url::query($args);
139 }
140
141 }
142
143
144 class url {
145
146 function query($args = array()) {
147 $query_list = array();
148 foreach ($args as $key => $val) {
149 array_push($query_list, "$key=$val");
150 }
151 $query_string = join('&', $query_list);
152 if ($query_string) { $query_string = '?' . $query_string; }
153 return $query_string;
154 }
155
156 // shortcut to 'link::store'
157 function short($base = '', $link_vars = array()) {
158
159 // if $base isn't defined, use the current url as base
160 if (!$base) { $base = $_SERVER['PHP_SELF']; }
161
162 if (constants::get('URL_ENCODE_GUID')) {
163 // store and encode the argument payload
164 $link_guid = link::store($link_vars);
165
166 // build complete url
167 $url = $base . "?lbid=" . $link_guid;
168 } else {
169 $url = $base . url::query($link_vars);
170 }
171
172
173 // there you have it..
174 return $url;
175 }
176
177 function viewdatanode($nodename) {
178
179 $final = array();
180 $defaults = array( 'ap' => 'explorer', 'ecl' => 'content' );
181 $location = array( 'ecdlk' => 'rpc' );
182 $args = array( 'ecmod' => 'view', 'ect' => 'data', );
183 $ident = array( 'ecat' => 'list', 'ecdid' => $nodename );
184
185 $final = php::array_join_merge($final, $defaults);
186 $final = php::array_join_merge($final, $location);
187 $final = php::array_join_merge($final, $args);
188 $final = php::array_join_merge($final, $ident);
189
190 return url::short('', $final);
191 }
192
193 }
194
195 ?>

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