Projects : mp-wp : mp-wp_svg-screenshots-and-errorreporting-r2
1 | <?php |
2 | /** |
3 | * WordPress Bookmark Administration API |
4 | * |
5 | * @package WordPress |
6 | * @subpackage Administration |
7 | */ |
8 | |
9 | /** |
10 | * {@internal Missing Short Description}} |
11 | * |
12 | * @since unknown |
13 | * |
14 | * @return unknown |
15 | */ |
16 | function add_link() { |
17 | return edit_link(); |
18 | } |
19 | |
20 | /** |
21 | * {@internal Missing Short Description}} |
22 | * |
23 | * @since unknown |
24 | * |
25 | * @param unknown_type $link_id |
26 | * @return unknown |
27 | */ |
28 | function edit_link( $link_id = '' ) { |
29 | if (!current_user_can( 'manage_links' )) |
30 | wp_die( __( 'Cheatin’ uh?' )); |
31 | |
32 | $_POST['link_url'] = wp_specialchars( $_POST['link_url'] ); |
33 | $_POST['link_url'] = clean_url($_POST['link_url']); |
34 | $_POST['link_name'] = wp_specialchars( $_POST['link_name'] ); |
35 | $_POST['link_image'] = wp_specialchars( $_POST['link_image'] ); |
36 | $_POST['link_rss'] = clean_url($_POST['link_rss']); |
37 | if ( !isset($_POST['link_visible']) || 'N' != $_POST['link_visible'] ) |
38 | $_POST['link_visible'] = 'Y'; |
39 | |
40 | if ( !empty( $link_id ) ) { |
41 | $_POST['link_id'] = $link_id; |
42 | return wp_update_link( $_POST); |
43 | } else { |
44 | return wp_insert_link( $_POST); |
45 | } |
46 | } |
47 | |
48 | /** |
49 | * {@internal Missing Short Description}} |
50 | * |
51 | * @since unknown |
52 | * |
53 | * @return unknown |
54 | */ |
55 | function get_default_link_to_edit() { |
56 | if ( isset( $_GET['linkurl'] ) ) |
57 | $link->link_url = clean_url( $_GET['linkurl']); |
58 | else |
59 | $link->link_url = ''; |
60 | |
61 | if ( isset( $_GET['name'] ) ) |
62 | $link->link_name = attribute_escape( $_GET['name']); |
63 | else |
64 | $link->link_name = ''; |
65 | |
66 | $link->link_visible = 'Y'; |
67 | |
68 | return $link; |
69 | } |
70 | |
71 | /** |
72 | * {@internal Missing Short Description}} |
73 | * |
74 | * @since unknown |
75 | * |
76 | * @param unknown_type $link_id |
77 | * @return unknown |
78 | */ |
79 | function wp_delete_link( $link_id ) { |
80 | global $wpdb; |
81 | |
82 | do_action( 'delete_link', $link_id ); |
83 | |
84 | wp_delete_object_term_relationships( $link_id, 'link_category' ); |
85 | |
86 | $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->links WHERE link_id = %d", $link_id ) ); |
87 | |
88 | do_action( 'deleted_link', $link_id ); |
89 | |
90 | clean_bookmark_cache( $link_id ); |
91 | |
92 | return true; |
93 | } |
94 | |
95 | /** |
96 | * {@internal Missing Short Description}} |
97 | * |
98 | * @since unknown |
99 | * |
100 | * @param unknown_type $link_id |
101 | * @return unknown |
102 | */ |
103 | function wp_get_link_cats( $link_id = 0 ) { |
104 | |
105 | $cats = wp_get_object_terms( $link_id, 'link_category', 'fields=ids' ); |
106 | |
107 | return array_unique( $cats ); |
108 | } |
109 | |
110 | /** |
111 | * {@internal Missing Short Description}} |
112 | * |
113 | * @since unknown |
114 | * |
115 | * @param unknown_type $link_id |
116 | * @return unknown |
117 | */ |
118 | function get_link_to_edit( $link_id ) { |
119 | return get_bookmark( $link_id, OBJECT, 'edit' ); |
120 | } |
121 | |
122 | /** |
123 | * {@internal Missing Short Description}} |
124 | * |
125 | * @since unknown |
126 | * |
127 | * @param unknown_type $linkdata |
128 | * @return unknown |
129 | */ |
130 | function wp_insert_link( $linkdata, $wp_error = false ) { |
131 | global $wpdb, $current_user; |
132 | |
133 | $defaults = array( 'link_id' => 0, 'link_name' => '', 'link_url' => '', 'link_rating' => 0 ); |
134 | |
135 | $linkdata = wp_parse_args( $linkdata, $defaults ); |
136 | $linkdata = sanitize_bookmark( $linkdata, 'db' ); |
137 | |
138 | extract( stripslashes_deep( $linkdata ), EXTR_SKIP ); |
139 | |
140 | $update = false; |
141 | |
142 | if ( !empty( $link_id ) ) |
143 | $update = true; |
144 | |
145 | if ( trim( $link_name ) == '' ) |
146 | return 0; |
147 | |
148 | if ( trim( $link_url ) == '' ) |
149 | return 0; |
150 | |
151 | if ( empty( $link_rating ) ) |
152 | $link_rating = 0; |
153 | |
154 | if ( empty( $link_image ) ) |
155 | $link_image = ''; |
156 | |
157 | if ( empty( $link_target ) ) |
158 | $link_target = ''; |
159 | |
160 | if ( empty( $link_visible ) ) |
161 | $link_visible = 'Y'; |
162 | |
163 | if ( empty( $link_owner ) ) |
164 | $link_owner = $current_user->id; |
165 | |
166 | if ( empty( $link_notes ) ) |
167 | $link_notes = ''; |
168 | |
169 | if ( empty( $link_description ) ) |
170 | $link_description = ''; |
171 | |
172 | if ( empty( $link_rss ) ) |
173 | $link_rss = ''; |
174 | |
175 | if ( empty( $link_rel ) ) |
176 | $link_rel = ''; |
177 | |
178 | // Make sure we set a valid category |
179 | if ( ! isset( $link_category ) ||0 == count( $link_category ) || !is_array( $link_category ) ) { |
180 | $link_category = array( get_option( 'default_link_category' ) ); |
181 | } |
182 | |
183 | if ( $update ) { |
184 | if ( false === $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->links SET link_url = %s, |
185 | link_name = %s, link_image = %s, link_target = %s, |
186 | link_visible = %s, link_description = %s, link_rating = %s, |
187 | link_rel = %s, link_notes = %s, link_rss = %s |
188 | WHERE link_id = %s", $link_url, $link_name, $link_image, $link_target, $link_visible, $link_description, $link_rating, $link_rel, $link_notes, $link_rss, $link_id ) ) ) { |
189 | if ( $wp_error ) |
190 | return new WP_Error( 'db_update_error', __( 'Could not update link in the database' ), $wpdb->last_error ); |
191 | else |
192 | return 0; |
193 | } |
194 | } else { |
195 | if ( false === $wpdb->query( $wpdb->prepare( "INSERT INTO $wpdb->links (link_url, link_name, link_image, link_target, link_description, link_visible, link_owner, link_rating, link_rel, link_notes, link_rss) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", |
196 | $link_url,$link_name, $link_image, $link_target, $link_description, $link_visible, $link_owner, $link_rating, $link_rel, $link_notes, $link_rss ) ) ) { |
197 | if ( $wp_error ) |
198 | return new WP_Error( 'db_insert_error', __( 'Could not insert link into the database' ), $wpdb->last_error ); |
199 | else |
200 | return 0; |
201 | } |
202 | $link_id = (int) $wpdb->insert_id; |
203 | } |
204 | |
205 | wp_set_link_cats( $link_id, $link_category ); |
206 | |
207 | if ( $update ) |
208 | do_action( 'edit_link', $link_id ); |
209 | else |
210 | do_action( 'add_link', $link_id ); |
211 | |
212 | clean_bookmark_cache( $link_id ); |
213 | |
214 | return $link_id; |
215 | } |
216 | |
217 | /** |
218 | * {@internal Missing Short Description}} |
219 | * |
220 | * @since unknown |
221 | * |
222 | * @param unknown_type $link_id |
223 | * @param unknown_type $link_categories |
224 | */ |
225 | function wp_set_link_cats( $link_id = 0, $link_categories = array() ) { |
226 | // If $link_categories isn't already an array, make it one: |
227 | if ( !is_array( $link_categories ) || 0 == count( $link_categories ) ) |
228 | $link_categories = array( get_option( 'default_link_category' ) ); |
229 | |
230 | $link_categories = array_map( 'intval', $link_categories ); |
231 | $link_categories = array_unique( $link_categories ); |
232 | |
233 | wp_set_object_terms( $link_id, $link_categories, 'link_category' ); |
234 | |
235 | clean_bookmark_cache( $link_id ); |
236 | } // wp_set_link_cats() |
237 | |
238 | /** |
239 | * {@internal Missing Short Description}} |
240 | * |
241 | * @since unknown |
242 | * |
243 | * @param unknown_type $linkdata |
244 | * @return unknown |
245 | */ |
246 | function wp_update_link( $linkdata ) { |
247 | $link_id = (int) $linkdata['link_id']; |
248 | |
249 | $link = get_link( $link_id, ARRAY_A ); |
250 | |
251 | // Escape data pulled from DB. |
252 | $link = add_magic_quotes( $link ); |
253 | |
254 | // Passed link category list overwrites existing category list if not empty. |
255 | if ( isset( $linkdata['link_category'] ) && is_array( $linkdata['link_category'] ) |
256 | && 0 != count( $linkdata['link_category'] ) ) |
257 | $link_cats = $linkdata['link_category']; |
258 | else |
259 | $link_cats = $link['link_category']; |
260 | |
261 | // Merge old and new fields with new fields overwriting old ones. |
262 | $linkdata = array_merge( $link, $linkdata ); |
263 | $linkdata['link_category'] = $link_cats; |
264 | |
265 | return wp_insert_link( $linkdata ); |
266 | } |
267 | |
268 | ?> |