예제 #1
0
 function delete()
 {
     global $wpdb, $bp;
     // Delete linkmeta for the link
     bp_links_delete_linkmeta($this->id);
     // Finally remove the link entry from the DB
     if (!$wpdb->query($wpdb->prepare("DELETE FROM {$bp->links->table_name} WHERE id = %d", $this->id))) {
         return false;
     }
     do_action('bp_links_link_after_delete', $this);
     return true;
 }
예제 #2
0
function bp_links_update_linkmeta($link_id, $meta_key, $meta_value)
{
    global $wpdb, $bp;
    if (!is_numeric($link_id)) {
        return false;
    }
    $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
    if (is_string($meta_value)) {
        $meta_value = stripslashes($wpdb->escape($meta_value));
    }
    $meta_value = maybe_serialize($meta_value);
    if (empty($meta_value)) {
        return bp_links_delete_linkmeta($link_id, $meta_key);
    }
    $cur = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . $bp->links->table_name_linkmeta . " WHERE link_id = %d AND meta_key = %s", $link_id, $meta_key));
    if (!$cur) {
        $wpdb->query($wpdb->prepare("INSERT INTO " . $bp->links->table_name_linkmeta . " ( link_id, meta_key, meta_value ) VALUES ( %d, %s, %s )", $link_id, $meta_key, $meta_value));
    } else {
        if ($cur->meta_value != $meta_value) {
            $wpdb->query($wpdb->prepare("UPDATE " . $bp->links->table_name_linkmeta . " SET meta_value = %s WHERE link_id = %d AND meta_key = %s", $meta_value, $link_id, $meta_key));
        } else {
            return false;
        }
    }
    /* Update the cached object and recache */
    wp_cache_set('bp_links_linkmeta_' . $link_id . '_' . $meta_key, $meta_value, 'bp');
    return true;
}