__construct();
}
function __construct() {
register_activation_hook( WPBOOKMARK_DIR . '/' . 'wpbookmark.php', array(&$this,'activate') );
register_deactivation_hook( WPBOOKMARK_DIR . '/' . 'wpbookmark.php', array(&$this,'deactivate') );
add_action('init', array(&$this, 'loadLibrary'));
add_action('admin_menu', array(&$this, 'adminMenu'));
add_filter('the_content', array(&$this, 'bookmarkHandler'));
add_action('wp_footer', array(&$this, 'addJsCode'));
add_action('wp_ajax_binnash_bookmark', array(&$this, 'doBookmark'));
add_action('wp_ajax_binnash_bookmark_list', array(&$this, 'doBookmarkList'));
add_shortcode('binnash_bookmark_list', array(&$this, 'bookmarkListShorcodeHandler'));
}
function doBookmarkList(){
if(is_user_logged_in()){
global $wpdb;
$userInfo = wp_get_current_user();
$conf = WPBookmarkConfig::getInstance();
$page = isset($_GET['page'])?$_GET['page']-1:0;
if(isset($_GET['remove'])&&!empty($_GET['remove'])){
$wpdb->query("DELETE FROM ".$conf->bookmarks_tbl .
" WHERE user_id = " . $userInfo->ID .
" AND post_id IN (" .
strip_tags($_GET['remove']) . ")");
}
$limit = isset($conf->bbookmark_items_per_page)?$conf->bbookmark_items_per_page:10;
$start = $page*$limit;
$query = "SELECT COUNT(" . $wpdb->posts . " .ID) FROM " .
$wpdb->posts ." LEFT JOIN " . $conf->bookmarks_tbl . " ON (" .
$wpdb->posts . " .ID = ". $conf->bookmarks_tbl . ".post_id".
") WHERE " .$conf->bookmarks_tbl . ".user_id=" .$userInfo->ID;
$row_count = $wpdb->get_var($query);
$pages = ceil($row_count/$limit);
$query = "SELECT " . $wpdb->posts . " .ID, post_title,post_type,date FROM " .
$wpdb->posts ." LEFT JOIN " . $conf->bookmarks_tbl . " ON (" .
$wpdb->posts . " .ID = ". $conf->bookmarks_tbl . ".post_id".
") WHERE " .$conf->bookmarks_tbl . ".user_id=" .$userInfo->ID .
" ORDER BY " . $wpdb->posts . " .post_title ASC LIMIT " . $start . ', ' . $limit;
$result = $wpdb->get_results($query, OBJECT);
ob_start();
include_once('bookmark_list.php');
$output = ob_get_contents();
ob_end_clean();
echo $output;
exit();
}
}
function bookmarkListShorcodeHandler($attrs, $contents, $codes){
if(is_user_logged_in()){
$ajaxurl = admin_url('admin-ajax.php');
ob_start();
include_once('bookmark_list_container.php');
$output = ob_get_contents();
ob_end_clean();
return $output;
}
return BBOOKMARK_LOGIN_REQUEST;
}
function doBookmark(){
if(is_user_logged_in()){
global $wpdb;
$conf = WPBookmarkConfig::getInstance();
$userInfo = wp_get_current_user();
if('add' == $_GET['op']){
$result = $wpdb->insert(
$conf->bookmarks_tbl,
array(
'user_id' => $userInfo->ID,
'post_id' => $_GET['id'],
'type' => $_GET['type'],
'date' => date('Y-m-d')
),
array(
'%d',
'%d',
'%s',
'%s'
)
);
if($result){
$removeTitle = BBOOKMARK_REMOVE;
$a1 = '√
'.BBOOKMARK_BOOKMARK.'
';
$a1 = array('title'=>$removeTitle,'op'=>'remove', 'text'=>$a1);
echo json_encode(array('status'=>1,'msg'=>$a1));
}
else
echo json_encode(array('status'=>0,'msg'=>$a1));
exit(0);
}
else if ("remove" == $_GET['op']){
$query = 'DELETE FROM ' . $conf->bookmarks_tbl .
' WHERE post_id =' . $_GET['id'] . ' AND '.
' user_id = ' .$userInfo->ID . ' AND '.
' type = \'post\'';
$result = $wpdb->query($query);
if($result){
$addTitle = BBOOKMARK_ADD_FAV;
$a1 = '+
'.BBOOKMARK_BOOKMARK.'';
$a1 = array('title'=>$addTitle,'op'=>'add', 'text'=>$a1);
echo json_encode(array('status'=>1,'msg'=>$a1));
}
else
echo json_encode(array('status'=>0,'msg'=>$a1));
exit(0);
}
}
}
function addJsCode(){
include_once ('bookmark_button_js.php');
}
function bookmarkHandler($content){
global $post;
if(is_category()) return $content;
if(is_feed()) return $content;
if(is_search()) return $content;
$conf = WPBookmarkConfig::getInstance();
$disabled = isset($conf->disable_bookmarks)?$conf->disable_bookmarks:array();
$disabled = isset($disabled['post'])?$disabled['post']:array();
if(in_array($post->ID, $disabled)) return $content;
if(is_user_logged_in()){
$userInfo = wp_get_current_user();
global $wpdb;
$query = 'SELECT * FROM ' . $conf->bookmarks_tbl .
' WHERE user_id = ' . $userInfo->ID .
' AND post_id = ' . $post->ID.
' AND type = \'post\'';
$results = $wpdb->get_results($query);
$addTitle = BBOOKMARK_ADD_FAV;
$removeTitle = BBOOKMARK_REMOVE;
$link = $post->ID;
if(!empty($results)){
$a1 = '
√
'.BBOOKMARK_BOOKMARK.'
';
}
else{
$a1 = '
+
'.BBOOKMARK_BOOKMARK.'
';
}
}
else{
$title = BBOOKMARK_LOGIN_TO_BOOKMARK;
$link = "";
$a1 = '