Add edit and delete links to the Content->Links rows. Add get_edit_bookmark_link(). Add caching for individual bookmarks. see #7552

git-svn-id: https://develop.svn.wordpress.org/trunk@8758 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Ryan Boren
2008-08-27 22:04:12 +00:00
parent de4dcecfab
commit fa0b44817d
4 changed files with 87 additions and 25 deletions
+21 -5
View File
@@ -51,6 +51,8 @@ function wp_delete_link($link_id) {
do_action('deleted_link', $link_id);
clean_bookmark_cache($link_id);
return true;
}
@@ -65,7 +67,7 @@ function get_link_to_edit( $link_id ) {
return get_bookmark( $link_id, OBJECT, 'edit' );
}
function wp_insert_link($linkdata) {
function wp_insert_link($linkdata, $wp_error = false) {
global $wpdb, $current_user;
$defaults = array('link_id' => 0, 'link_name' => '', 'link_url' => '', 'link_rating' => 0 );
@@ -119,14 +121,24 @@ function wp_insert_link($linkdata) {
}
if ( $update ) {
$wpdb->query( $wpdb->prepare("UPDATE $wpdb->links SET link_url = %s,
if ( false === $wpdb->query( $wpdb->prepare("UPDATE $wpdb->links SET link_url = %s,
link_name = %s, link_image = %s, link_target = %s,
link_visible = %s, link_description = %s, link_rating = %s,
link_rel = %s, link_notes = %s, link_rss = %s
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) );
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) ) ) {
if ( $wp_error )
return new WP_Error('db_update_error', __('Could not update link in the database'), $wpdb->last_error);
else
return 0;
}
} else {
$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)",
$link_url,$link_name, $link_image, $link_target, $link_description, $link_visible, $link_owner, $link_rating, $link_rel, $link_notes, $link_rss) );
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)",
$link_url,$link_name, $link_image, $link_target, $link_description, $link_visible, $link_owner, $link_rating, $link_rel, $link_notes, $link_rss) ) ) {
if ( $wp_error )
return new WP_Error('db_insert_error', __('Could not insert link into the database'), $wpdb->last_error);
else
return 0;
}
$link_id = (int) $wpdb->insert_id;
}
@@ -137,6 +149,8 @@ function wp_insert_link($linkdata) {
else
do_action('add_link', $link_id);
clean_bookmark_cache($link_id);
return $link_id;
}
@@ -149,6 +163,8 @@ function wp_set_link_cats($link_id = 0, $link_categories = array()) {
$link_categories = array_unique($link_categories);
wp_set_object_terms($link_id, $link_categories, 'link_category');
clean_bookmark_cache($link_id);
} // wp_set_link_cats()
function wp_update_link($linkdata) {
+16 -6
View File
@@ -163,7 +163,7 @@ if ( $links ) {
</thead>
<tbody>
<?php
$i = 0; // It is slower incrementing an undefined and valueless variable.
$alt = 0;
foreach ($links as $link) {
$link = sanitize_bookmark($link);
@@ -175,18 +175,28 @@ if ( $links ) {
$short_url = substr($short_url, 0, -1);
if (strlen($short_url) > 35)
$short_url = substr($short_url, 0, 32).'...';
$visible = ($link->link_visible == 'Y') ? __('Yes') : __('No');
++ $i;
$style = ($i % 2) ? '' : ' class="alternate"';
$style = ($alt % 2) ? '' : ' class="alternate"';
++ $alt;
$edit_link = get_edit_bookmark_link();
?><tr id="link-<?php echo $link->link_id; ?>" valign="middle" <?php echo $style; ?>><?php
echo '<th scope="row" class="check-column"><input type="checkbox" name="linkcheck[]" value="'.$link->link_id.'" /></th>';
foreach($link_columns as $column_name=>$column_display_name) {
switch($column_name) {
case 'name':
echo "<td><strong><a class='row-title' href='link.php?link_id=$link->link_id&amp;action=edit' title='" . attribute_escape(sprintf(__('Edit "%s"'), $link->link_name)) . "' class='edit'>$link->link_name</a></strong><br />";
echo $link->link_description . "</td>";
echo "<td><strong><a class='row-title' href='$edit_link' title='" . attribute_escape(sprintf(__('Edit "%s"'), $link->link_name)) . "' class='edit'>$link->link_name</a></strong><br />";
$actions = array();
$actions['edit'] = '<a href="' . $edit_link . '">' . __('Edit') . '</a>';
$actions['delete'] = "<a class='submitdelete' href='" . wp_nonce_url("link.php?action=delete&amp;link_id=$link->link_id", 'delete-bookmark_' . $link->link_id) . "' onclick=\"if ( confirm('" . js_escape(sprintf( __("You are about to delete this link '%s'\n 'Cancel' to stop, 'OK' to delete."), $link->link_name )) . "') ) { return true;}return false;\">" . __('Delete') . "</a>";
$action_count = count($actions);
$i = 0;
foreach ( $actions as $action => $link ) {
++$i;
( $i == $action_count ) ? $sep = '' : $sep = ' | ';
echo "<span class='$action'>$link$sep</span>";
}
echo '</td>';
break;
case 'url':
echo "<td><a href='$link->link_url' title='".sprintf(__('Visit %s'), $link->link_name)."'>$short_url</a></td>";