]> scripts.mit.edu Git - autoinstalls/wordpress.git/blob - wp-admin/link-manager.php
Wordpress 2.0.2
[autoinstalls/wordpress.git] / wp-admin / link-manager.php
1 <?php
2 // Links
3 // Copyright (C) 2002, 2003 Mike Little -- mike@zed1.com
4
5 require_once('admin.php');
6
7 $title = __('Manage Links');
8 $this_file = $parent_file = 'link-manager.php';
9 $list_js = true;
10
11 $wpvarstoreset = array('action','cat_id', 'linkurl', 'name', 'image',
12                        'description', 'visible', 'target', 'category', 'link_id',
13                        'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel',
14                        'notes', 'linkcheck[]');
15
16 for ($i=0; $i<count($wpvarstoreset); $i += 1) {
17     $wpvar = $wpvarstoreset[$i];
18     if (!isset($$wpvar)) {
19         if (empty($_POST["$wpvar"])) {
20             if (empty($_GET["$wpvar"])) {
21                 $$wpvar = '';
22             } else {
23                 $$wpvar = $_GET["$wpvar"];
24             }
25         } else {
26             $$wpvar = $_POST["$wpvar"];
27         }
28     }
29 }
30
31 $links_show_cat_id = $_COOKIE['links_show_cat_id_' . COOKIEHASH];
32 $links_show_order = $_COOKIE['links_show_order_' . COOKIEHASH];
33
34 if ('' != $_POST['assign']) $action = 'assign';
35 if ('' != $_POST['visibility']) $action = 'visibility';
36 if ('' != $_POST['move']) $action = 'move';
37 if ('' != $_POST['linkcheck']) $linkcheck = $_POST[linkcheck];
38
39 switch ($action) {
40   case 'assign':
41   {
42     check_admin_referer();
43
44     // check the current user's level first.
45     if ( !current_user_can('manage_links') )
46       die (__("Cheatin' uh ?"));
47
48     //for each link id (in $linkcheck[]): if the current user level >= the
49     //userlevel of the owner of the link then we can proceed.
50
51     if (count($linkcheck) == 0) {
52         header('Location: ' . $this_file);
53         exit;
54     }
55     $all_links = join(',', $linkcheck);
56     $results = $wpdb->get_results("SELECT link_id, link_owner FROM $wpdb->links LEFT JOIN $wpdb->users ON link_owner = ID WHERE link_id in ($all_links)");
57     foreach ($results as $row) {
58        $ids_to_change[] = $row->link_id;
59     }
60
61     // should now have an array of links we can change
62     $all_links = join(',', $ids_to_change);
63     $q = $wpdb->query("update $wpdb->links SET link_owner='$newowner' WHERE link_id IN ($all_links)");
64
65     header('Location: ' . $this_file);
66     break;
67   }
68   case 'visibility':
69   {
70     check_admin_referer();
71
72     // check the current user's level first.
73     if ( !current_user_can('manage_links') )
74       die (__("Cheatin' uh ?"));
75
76     //for each link id (in $linkcheck[]): toggle the visibility
77     if (count($linkcheck) == 0) {
78         header('Location: ' . $this_file);
79         exit;
80     }
81     $all_links = join(',', $linkcheck);
82     $results = $wpdb->get_results("SELECT link_id, link_visible FROM $wpdb->links WHERE link_id in ($all_links)");
83     foreach ($results as $row) {
84         if ($row->link_visible == 'Y') { // ok to proceed
85             $ids_to_turnoff[] = $row->link_id;
86         } else {
87             $ids_to_turnon[] = $row->link_id;
88         }
89     }
90
91     // should now have two arrays of links to change
92     if (count($ids_to_turnoff)) {
93         $all_linksoff = join(',', $ids_to_turnoff);
94         $q = $wpdb->query("update $wpdb->links SET link_visible='N' WHERE link_id IN ($all_linksoff)");
95     }
96
97     if (count($ids_to_turnon)) {
98         $all_linkson = join(',', $ids_to_turnon);
99         $q = $wpdb->query("update $wpdb->links SET link_visible='Y' WHERE link_id IN ($all_linkson)");
100     }
101
102     header('Location: ' . $this_file);
103     break;
104   }
105   case 'move':
106   {
107     check_admin_referer();
108
109     // check the current user's level first.
110     if ( !current_user_can('manage_links') )
111       die (__("Cheatin' uh ?"));
112
113     //for each link id (in $linkcheck[]) change category to selected value
114     if (count($linkcheck) == 0) {
115         header('Location: ' . $this_file);
116         exit;
117     }
118     $all_links = join(',', $linkcheck);
119     // should now have an array of links we can change
120     $q = $wpdb->query("update $wpdb->links SET link_category='$category' WHERE link_id IN ($all_links)");
121
122     header('Location: ' . $this_file);
123     break;
124   }
125
126   case 'Add':
127   {
128     check_admin_referer();
129
130         add_link();
131         
132     header('Location: ' . $_SERVER['HTTP_REFERER'] . '?added=true');
133     break;
134   } // end Add
135
136   case 'editlink':
137   {
138  
139         check_admin_referer();
140         
141         if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
142                 $cat_id = $links_show_cat_id;
143
144         if (!isset($cat_id) || ($cat_id == '')) {
145                 if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
146                         $cat_id = 'All';
147         }
148         $links_show_cat_id = $cat_id;
149
150         $link_id = (int) $_POST['link_id'];
151         edit_link($link_id);
152         
153     setcookie('links_show_cat_id_' . COOKIEHASH, $links_show_cat_id, time()+600);
154     wp_redirect($this_file);
155     break;
156   } // end Save
157
158   case 'Delete':
159   {
160     check_admin_referer();
161
162     if ( !current_user_can('manage_links') )
163       die (__("Cheatin' uh ?"));
164
165     $link_id = (int) $_GET['link_id'];
166
167         wp_delete_link($link_id);
168         
169     if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
170         $cat_id = $links_show_cat_id;
171
172     if (!isset($cat_id) || ($cat_id == '')) {
173         if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
174         $cat_id = 'All';
175     }
176     $links_show_cat_id = $cat_id;
177     setcookie('links_show_cat_id_' . COOKIEHASH, $links_show_cat_id, time()+600);
178     wp_redirect($this_file);
179     break;
180   } // end Delete
181
182   case 'linkedit': {
183         $xfn_js = true;
184         include_once ('admin-header.php');
185         if ( !current_user_can('manage_links') )
186                 die(__('You do not have sufficient permissions to edit the links for this blog.'));
187         
188         $link_id = (int) $_GET['link_id'];
189         
190         if ( !$link = get_link_to_edit($link_id) )
191                 die( __('Link not found.') );
192         
193         include('edit-link-form.php');
194         break;
195   } // end linkedit
196   case __("Show"):
197   {
198     if (!isset($cat_id) || ($cat_id == '')) {
199         if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
200         $cat_id = 'All';
201     }
202     $links_show_cat_id = $cat_id;
203     if (!isset($order_by) || ($order_by == '')) {
204         if (!isset($links_show_order) || ($links_show_order == ''))
205         $order_by = 'order_name';
206     }
207     $links_show_order = $order_by;
208     //break; fall through
209   } // end Show
210   case "popup":
211   {
212     $link_url = stripslashes($_GET["linkurl"]);
213     $link_name = stripslashes($_GET["name"]);
214     //break; fall through
215   }
216   default:
217   {
218     if (isset($links_show_cat_id) && ($links_show_cat_id != ''))
219         $cat_id = $links_show_cat_id;
220
221     if (!isset($cat_id) || ($cat_id == '')) {
222         if (!isset($links_show_cat_id) || ($links_show_cat_id == ''))
223         $cat_id = 'All';
224     }
225     $links_show_cat_id = $cat_id;
226     if (isset($links_show_order) && ($links_show_order != ''))
227         $order_by = $links_show_order;
228
229     if (!isset($order_by) || ($order_by == ''))
230         $order_by = 'order_name';
231     $links_show_order = $order_by;
232
233     setcookie('links_show_cat_id_' . COOKIEHASH, $links_show_cat_id, time()+600);
234     setcookie('links_show_order_' . COOKIEHASH, $links_show_order, time()+600);
235     include_once ("./admin-header.php");
236     if ( !current_user_can('manage_links') )
237       die(__("You do not have sufficient permissions to edit the links for this blog."));
238
239     switch ($order_by)
240     {
241         case 'order_id':     $sqlorderby = 'id';          break;
242         case 'order_url':    $sqlorderby = 'url';         break;
243         case 'order_desc':   $sqlorderby = 'description'; break;
244         case 'order_owner':  $sqlorderby = 'owner';       break;
245         case 'order_rating': $sqlorderby = 'rating';      break;
246         case 'order_name':
247         default:             $sqlorderby = 'name';        break;
248     }
249
250   if ($action != "popup") {
251 ?>
252 <script type="text/javascript">
253 <!--
254 function checkAll(form)
255 {
256         for (i = 0, n = form.elements.length; i < n; i++) {
257                 if(form.elements[i].type == "checkbox") {
258                         if(form.elements[i].checked == true)
259                                 form.elements[i].checked = false;
260                         else
261                                 form.elements[i].checked = true;
262                 }
263         }
264 }
265 //-->
266 </script>
267
268 <div class="wrap">
269     <form name="cats" method="post" action="">
270     <table width="75%" cellpadding="3" cellspacing="3">
271       <tr>
272         <td>
273         <?php _e('<strong>Show</strong> links in category:'); ?><br />
274         </td>
275         <td>
276           <?php _e('<strong>Order</strong> by:');?>
277         </td>
278                 <td>&nbsp;</td>
279       </tr>
280       <tr>
281         <td>
282 <?php
283     $results = $wpdb->get_results("SELECT cat_id, cat_name, auto_toggle FROM $wpdb->linkcategories ORDER BY cat_id");
284     echo "        <select name=\"cat_id\">\n";
285     echo "          <option value=\"All\"";
286     if ($cat_id == 'All')
287       echo " selected='selected'";
288     echo "> " . __('All') . "</option>\n";
289     foreach ($results as $row) {
290       echo "          <option value=\"".$row->cat_id."\"";
291       if ($row->cat_id == $cat_id)
292         echo " selected='selected'";
293         echo ">".$row->cat_id.": ".wp_specialchars($row->cat_name);
294         if ($row->auto_toggle == 'Y')
295             echo ' '.__('(auto toggle)');
296         echo "</option>\n";
297     }
298     echo "        </select>\n";
299 ?>
300         </td>
301         <td>
302           <select name="order_by">
303             <option value="order_id"     <?php if ($order_by == 'order_id')     echo " selected='selected'";?>><?php _e('Link ID') ?></option>
304             <option value="order_name"   <?php if ($order_by == 'order_name')   echo " selected='selected'";?>><?php _e('Name') ?></option>
305             <option value="order_url"    <?php if ($order_by == 'order_url')    echo " selected='selected'";?>><?php _e('URI') ?></option>
306             <option value="order_desc"   <?php if ($order_by == 'order_desc')   echo " selected='selected'";?>><?php _e('Description') ?></option>
307             <option value="order_owner"  <?php if ($order_by == 'order_owner')  echo " selected='selected'";?>><?php _e('Owner') ?></option>
308             <option value="order_rating" <?php if ($order_by == 'order_rating') echo " selected='selected'";?>><?php _e('Rating') ?></option>
309           </select>
310         </td>
311         <td>
312           <input type="submit" name="action" value="<?php _e('Show') ?>" />
313         </td>
314       </tr>
315     </table>
316     </form>
317
318 </div>
319
320 <form name="links" id="links" method="post" action="">
321 <div class="wrap">
322
323     <input type="hidden" name="link_id" value="" />
324     <input type="hidden" name="action" value="" />
325     <input type="hidden" name="order_by" value="<?php echo wp_specialchars($order_by, 1); ?>" />
326     <input type="hidden" name="cat_id" value="<?php echo (int) $cat_id ?>" />
327   <table id="the-list-x" width="100%" cellpadding="3" cellspacing="3">
328     <tr>
329       <th width="15%"><?php _e('Name') ?></th>
330       <th><?php _e('URI') ?></th>
331       <th><?php _e('Category') ?></th>
332       <th><?php _e('rel') ?></th>
333       <th><?php _e('Image') ?></th>
334       <th><?php _e('Visible') ?></th>
335       <th colspan="2"><?php _e('Action') ?></th>
336       <th>&nbsp;</th>
337   </tr>
338 <?php
339     $sql = "SELECT link_url, link_name, link_image, link_description, link_visible,
340             link_category AS cat_id, cat_name AS category, $wpdb->users.user_login, link_id,
341             link_rating, link_rel
342             FROM $wpdb->links
343             LEFT JOIN $wpdb->linkcategories ON $wpdb->links.link_category = $wpdb->linkcategories.cat_id
344             LEFT JOIN $wpdb->users ON $wpdb->users.ID = $wpdb->links.link_owner ";
345
346     if (isset($cat_id) && ($cat_id != 'All')) {
347       $sql .= " WHERE link_category = $cat_id ";
348     }
349     $sql .= ' ORDER BY link_' . $sqlorderby;
350
351     // echo "$sql";
352     $links = $wpdb->get_results($sql);
353     if ($links) {
354         foreach ($links as $link) {
355             $link->link_name = wp_specialchars($link->link_name);
356             $link->link_category = wp_specialchars($link->link_category);
357             $link->link_description = wp_specialchars($link->link_description);
358             $link->link_url = wp_specialchars($link->link_url);
359             $short_url = str_replace('http://', '', $link->link_url);
360             $short_url = str_replace('www.', '', $short_url);
361             if ('/' == substr($short_url, -1))
362                 $short_url = substr($short_url, 0, -1);
363             if (strlen($short_url) > 35)
364                 $short_url =  substr($short_url, 0, 32).'...';
365
366             $image = ($link->link_image != null) ? __('Yes') : __('No');
367             $visible = ($link->link_visible == 'Y') ? __('Yes') : __('No');
368             ++$i;
369             $style = ($i % 2) ? '' : ' class="alternate"';
370 ?>
371     <tr id="link-<?php echo $link->link_id; ?>" valign="middle" <?php echo $style; ?>>
372                 <td><strong><?php echo $link->link_name; ?></strong><br />
373 <?php                   
374         echo sprintf(__('Description: %s'), $link->link_description) . "</td>";
375         echo "<td><a href=\"$link->link_url\" title=\"" . sprintf(__('Visit %s'), $link->link_name) . "\">$short_url</a></td>";
376         echo <<<LINKS
377         <td>$link->category</td>
378         <td>$link->link_rel</td>
379         <td align='center'>$image</td>
380         <td align='center'>$visible</td>
381 LINKS;
382             $show_buttons = 1; // default
383
384             if ($show_buttons) {
385         echo '<td><a href="link-manager.php?link_id=' . $link->link_id . '&amp;action=linkedit" class="edit">' . __('Edit') . '</a></td>';
386         echo '<td><a href="link-manager.php?link_id=' . $link->link_id . '&amp;action=Delete"' .  " onclick=\"return deleteSomething( 'link', $link->link_id , '" . sprintf(__("You are about to delete the &quot;%s&quot; link to %s.\\n&quot;Cancel&quot; to stop, &quot;OK&quot; to delete."), wp_specialchars($link->link_name,1), wp_specialchars($link->link_url)) . '\' );" class="delete">' . __('Delete') . '</a></td>';
387         echo '<td><input type="checkbox" name="linkcheck[]" value="' . $link->link_id . '" /></td>';
388             } else {
389               echo "<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>\n";
390             }
391                 echo "\n    </tr>\n";
392         }
393     }
394 ?>
395 </table>
396
397 <div id="ajax-response"></div>
398
399 </div>
400
401 <div class="wrap">
402   <table width="100%" cellpadding="3" cellspacing="3">
403     <tr><th colspan="4"><?php _e('Manage Multiple Links:') ?></th></tr>
404     <tr><td colspan="4"><?php _e('Use the checkboxes on the right to select multiple links and choose an action below:') ?></td></tr>
405     <tr>
406         <td>
407           <?php _e('Assign ownership to:'); ?>
408 <?php
409     $results = $wpdb->get_results("SELECT ID, user_login FROM $wpdb->users ORDER BY ID");
410     echo "          <select name=\"newowner\" size=\"1\">\n";
411     foreach ($results as $row) {
412       echo "            <option value=\"".$row->ID."\"";
413       echo ">".$row->user_login;
414       echo "</option>\n";
415     }
416     echo "          </select>\n";
417 ?>
418         <input name="assign" type="submit" id="assign" value="<?php _e('Go') ?>" />
419         </td>
420         <td>
421           <input name="visibility" type="submit" id="visibility" value="<?php _e('Toggle Visibility') ?>" />
422         </td>
423         <td>
424           <?php _e('Move to category:'); link_category_dropdown('category'); ?> <input name="move" type="submit" id="move" value="<?php _e('Go') ?>" />
425         </td>
426         <td align="right">
427           <a href="#" onclick="checkAll(document.getElementById('links')); return false; "><?php _e('Toggle Checkboxes') ?></a>
428         </td>
429     </tr>
430 </table>
431
432 <?php
433   } // end if !popup
434 ?>
435 </div>
436 </form>
437
438
439 <?php
440     break;
441   } // end default
442 } // end case
443 ?>
444
445 <?php include('admin-footer.php'); ?>