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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

1 joko 1.1 <?
2     /*
3     ## -------------------------------------------------------------------------
4 joko 1.4 ## $Id: links.php,v 1.3 2003/04/08 22:38:43 joko Exp $
5 joko 1.1 ## -------------------------------------------------------------------------
6 joko 1.2 ## $Log: links.php,v $
7 joko 1.4 ## Revision 1.3 2003/04/08 22:38:43 joko
8     ## NEW: 'class url' as code container for some shortcut functions
9     ##
10 joko 1.3 ## Revision 1.2 2003/04/08 17:56:09 joko
11     ## bugfixes
12     ##
13 joko 1.2 ## Revision 1.1 2003/04/06 04:30:10 joko
14     ## initial commit
15     ##
16 joko 1.1 ## 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 joko 1.3 $query_string = url::query($args);
86 joko 1.1 return html_a($query_string, $caption);
87     }
88 joko 1.2
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 joko 1.4
94     function plain($url, $caption = '') {
95     if (!$caption) { $caption = $url; }
96     return html_a($url, $caption);
97     }
98 joko 1.1
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 joko 1.3 return url::query($args);
128 joko 1.1 }
129    
130     function topic($topic_name, $args = array()) {
131     $args[t] = $topic_name;
132     //unset($args[ap]);
133 joko 1.3 return url::query($args);
134 joko 1.1 }
135    
136 joko 1.2 function action($action_name, $args = array()) {
137     $args[ga] = $action_name;
138 joko 1.3 return url::query($args);
139 joko 1.2 }
140    
141 joko 1.1 }
142    
143    
144 joko 1.3 class url {
145 joko 1.1
146 joko 1.3 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 joko 1.4 }
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 joko 1.3 }
192 joko 1.1
193     }
194    
195     ?>

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