config_exists($name, true); $db->update(tbl("config"), array('value'), array($value), " name = '" . $name . "'"); //echo $db->db_query."

"; $Cbucket->configs = $Cbucket->get_configs(); } function Get_Website_Details() { $query = mysql_query("SELECT * FROM " . tbl("config")); while ($row = mysql_fetch_array($query)) { $name = $row['name']; $data[$name] = $row['value']; } return $data; } /** * Function used to check weather config exists or not * it also used to create a config if it does not exist */ function config_exists($name) { global $db, $Cbucket; $configs = $Cbucket->configs; if (array_key_exists($name, $configs)) return true; else $db->insert(tbl("config"), array('name'), array($name)); /* $count = $db->count(tbl("config"),"configid"," name='$name' "); if(!$count) $db->insert(tbl("config"),array('name'),array($name)); */ return true; } //Function Used to Check Weather Video Exists or not function VideoExists($videoid) { global $cbvid; return $cbvid->exists($videoid); } function video_exists($videoid) { return $this->VideoExists($videoid); } function CheckVideoExists($videokey) { return $this->VideoExists($videokey); } //Function used to Delete Video function DeleteVideo($videoid) { global $cbvid; return $cbvid->delete_video($videoid); } //Video Actions - All Moved to video.class.php function MakeFeaturedVideo($videoid) { global $cbvid; return $cbvid->action('feature', $videoid); } function MakeUnFeaturedVideo($videoid) { global $cbvid; return $cbvid->action('unfeature', $videoid); } function ActivateVideo($videoid) { global $cbvid; return $cbvid->action('activate', $videoid); } function DeActivateVideo($videoid) { global $cbvid; return $cbvid->action('deactivate', $videoid); } /** * Function used to get video details * from video table * @param INPUT vid or videokey */ function get_video_details($vid) { global $cbvid; return $cbvid->get_video($vid); } function GetVideoDetails($video) { return $this->get_video_details($video); } function GetVideDetails($video) { return $this->get_video_details($video); } //Function Used To Update Videos Views function UpdateVideoViews($vkey) { increment_views($vkey, 'video'); } /** * Function used to check weather username exists not */ function check_user($username) { global $userquery; return $userquery->username_exists($username); } /** * Function used to check weather email exists not */ function check_email($email) { global $userquery; return $userquery->email_exists($email); } /** * Function used to delete comments * @param INT $cid Comment id * @param STRING $type Type of object, can be v,p or c * @param BOOLEAN $is_reply Is comment a reply if yes * @param BOOLEAN $foceDelete delete comment anyway... */ function delete_comment($cid, $type = 'v', $is_reply = FALSE, $forceDelete = false) { global $db, $userquery, $LANG; //first get comment details $cdetails = $this->get_comment($cid); $uid = user_id(); if (($uid == $cdetails['userid'] && $cdetails['userid'] != '') || $cdetails['type_owner_id'] == userid() || has_access("admin_del_access", false) || $is_reply == TRUE || $forceDelete) { $replies = $this->get_comments($cdetails['type_id'], $type, FALSE, $cid, TRUE); if (count($replies) > 0 && is_array($replies)) { foreach ($replies as $reply) { $this->delete_comment($reply['comment_id'], $type, TRUE, $forceDelete); } } $db->Execute("DELETE FROM " . tbl("comments") . " WHERE comment_id='$cid'"); /* if($uid) $myquery->update_comments_by_user($uid); */ e(lang('usr_cmt_del_msg'), "m"); return $cdetails['type_id']; } else { e(lang('no_comment_del_perm')); return false; } return false; } function DeleteComment($id, $videoid) { return $this->delete_comment($videoid); } /** * Function used to set comment as spam * @param INT $cid * @return BOOLEAN */ function spam_comment($cid) { global $db; $comment = $this->get_comment($cid); $uid = user_id(); if ($comment) { $voters = $comment['spam_voters']; //In our old system we used | to sperate ids //Now we will remove this | and make good use of json if (strstr($voters, '|')) { $voters = explode('|', $voters); } else { $voters = json_decode($voters); } if (!$voters) $voters = array(); if (!$comment) e(lang('no_comment_exists')); elseif (!userid()) e(lang('login_to_mark_as_spam')); elseif (userid() == $comment['userid'] || (!userid() && $_SERVER['REMOTE_ADDR'] == $comment['comment_ip'])) e(lang('no_own_commen_spam')); elseif (in_array($uid, $voters)) e(lang('already_spammed_comment')); else { $voters[] = userid(); $newscore = $comment['spam_votes'] + 1; $voters = json_encode($voters); $db->update(tbl('comments'), array('spam_votes', 'spam_voters'), array($newscore, '|no_mc|' . $voters), " comment_id='$cid'"); e(lang('spam_comment_ok'), "m"); return $newscore; } }else e(lang('no_comment_exists')); return false; } /** * Incase comment was not a spam, there should be an undo * for a user.. * * @param INT $cid * @return BOOLEAN */ function unspam_comment($cid) { global $db; $comment = $this->get_comment($cid); $uid = user_id(); if ($comment) { $voters = $comment['spam_voters']; //In our old system we used | to sperate ids //Now we will remove this | and make good use of json if (strstr($voters, '|')) { $voters = explode('|', $voters); } else { $voters = json_decode($voters); } if (!$voters) $voters = array(); if (!$comment) e(lang('no_comment_exists')); elseif (!userid()) e(lang('login_to_mark_as_spam')); elseif (!in_array($uid, $voters)) e(lang('You never marked this as spam..')); else { $key = array_search($uid, $voters); unset($voters[$key]); //Removing uid from voters list $newscore = $comment['spam_votes'] - 1; $voters = json_encode($voters); $db->update(tbl('comments'), array('spam_votes', 'spam_voters'), array($newscore, '|no_mc|' . $voters), " comment_id='$cid'"); e(lang('Spam flag removed from comment'), "m"); return $newscore; } }else e(lang('no_comment_exists')); return false; } /** * Function used to set comment as spam * @todo Write documentation and improve this function */ function remove_spam($cid) { global $db; $comment = $this->get_comment($cid); $vote = '0'; $none = ''; if ($comment) { $votes = $comment['spam_votes']; if (!$votes) { e(lang('Comment is not a spam')); } elseif (!userid()) { e(lang('login_to_mark_as_spam')); } else { $db->update(tbl('comments'), array('spam_votes', 'spam_voters'), array($vote, $none), " comment_id='$cid'"); e(lang('Spam removed from comment.'), "m"); } } else { e(lang('no_comment_exists')); } } /** * Function used to delete all comments of particlar object */ function delete_comments($objid, $type = 'v', $forceDelete = false) { global $db, $userquery, $LANG; $uid = user_id(); if ($userquery->permission['admin_del_access'] == 'yes' || $forceDelete) { $db->Execute("DELETE FROM " . tbl("comments") . " WHERE type_id='$objid' AND type='$type' "); e(lang('usr_cmt_del_msg'), 'm'); return true; } else { e(lang('no_comment_del_perm')); return false; } return false; } /* * * * Function used to rate comment * * */ function rate_comment($rate, $cid) { global $db; $comment = $this->get_comment($cid); $voters = $comment['voters']; //In our old system we used | to sperate ids //Now we will remove this | and make good use of json if (strstr($voters, '|')) { $voters = explode('|', $voters); $voters = array(); //Old votes won't work..sorry } else { $voters = json_decode($voters, true); } if (!$voters) $voters = array(); if (!$comment) e(lang('no_comment_exists')); elseif (!userid()) e(lang('class_comment_err6')); elseif (( userid() == $comment['userid'] || (!userid() && $_SERVER['REMOTE_ADDR'] == $comment['comment_ip']) ) && ALLOW_OWN_COMMENT_RATING != 'yes') e(lang('no_own_commen_rate')); else { $uid = userid(); $newscore = $comment['vote']; $old_vote = $voters[$uid]; if ($old_vote != $rate) { if ($old_vote == -1) { $newscore += 1; $rate = 0; } elseif ($old_vote == 1) { $newscore -= 1; $rate = 0; } else { $newscore = $newscore + $rate; } } elseif (!isset($voters[$uid])) { $newscore = $newscore + $rate; } $voters[$uid] = $rate; $voters = json_encode($voters); $db->update(tbl('comments'), array('vote', 'voters'), array($newscore, '|no_mc|' . $voters), " comment_id='$cid'"); e(lang('thanks_rating_comment'), "m"); return $newscore; } return false; } //Function Used To Varify Syntax function isValidSyntax($syntax) { global $LANG; $pattern = "^^[_a-z0-9-]+$"; if (eregi($pattern, $syntax)) { return true; } else { return false; } } /** * FUNCTION USED TO GET VIDEOS FROM DATABASE * @param: array of query parameters array() * featured => '' (yes,no) * username => '' (TEXT) * title => '' (TEXT) * tags => '' (TEXT) * category => '' (INT) * limit => '' (OFFSET,LIMIT) * order=>'' (BY SORT) -- (date_added DESC) * extra_param=>'' ANYTHING FOR MYSQL QUERY * @param: boolean * @param: results type (results,query) */ function getVideoList($param = array(), $global_cond = true, $result = 'results') { global $db; $sql = "SELECT * FROM video"; //Global Condition For Videos if ($global_cond == true) $cond = "broadcast='public' AND active='yes' AND status='Successful'"; //Checking Condition if (!empty($param['featured'])) { $param['featured'] = 'yes' ? 'yes' : 'no'; $cond .=" AND featured= '" . $param['featured'] . "' "; } if (!empty($param['username'])) { $username = mysql_clean($param['username']); $cond .=" AND featured= '" . $username . "' "; } if (!empty($param['category'])) { $category = intval($param['category']); $cond .=" AND (category01= '" . $category . "' OR category02= '" . $category . "' OR category03= '" . $category . "') "; } if (!empty($param['tags'])) { $tags = mysql_clean($param['tags']); $cond .=" AND tags LIKE '%" . $tags . "%' "; } if (!empty($param['title'])) { $tags = mysql_clean($param['tags']); $cond .=" AND title LIKE '%" . $param['title'] . "%' "; } //Adding Condition in Query if (!empty($cond)) $sql .= " WHERE $cond "; //SORTING VIDEOS if (!empty($param['order'])) $sort = 'ORDER BY ' . $param['order']; //Adding Sorting In Query $sql .= $sort; //LIMITING VIDEO LIST if (empty($param['limit'])) $limit = " LIMIT " . VLISTPP; elseif ($param['limit'] == 'nolimit') $limit = ''; else $limit = " LIMIT " . $param['limit']; $sql .= $limit; //Final Executing of Query and Returning Results if ($result == 'results') return $db->Execute($sql); else return $sql; } /** * Function used to send subsribtion message */ function send_subscription($subscriber, $from, $video) { global $LANG; //First checking weather $subscriber exists or not $array = array('%subscriber%', '%user%', '%website_title%'); $replace = array($subscriber, $from, TITLE); $to = $subscriber; $subj = str_replace($array, $replace, lang('user_subscribe_subject')); //Get Subscription Message Template $msg = get_subscription_template(); $msg = str_replace($array, $replace, $msg); $this->SendMessage($to, $from, $subj, $msg, $video, 0, 0); } /** * Function used to add comment * This is more advance function , * in this function functions can be applied on comments */ function add_comment($comment, $obj_id, $reply_to = NULL, $type = 'v', $obj_owner = NULL, $obj_link = NULL, $force_name_email = false) { global $userquery, $eh, $db, $Cbucket; //Checking maximum comments characters allowed if (defined("MAX_COMMENT_CHR")) { if (strlen($comment) > MAX_COMMENT_CHR) e(sprintf("'%d' characters allowed for comment", MAX_COMMENT_CHR)); } if (!verify_captcha()) e(lang('usr_ccode_err')); if (empty($comment)) e(lang("pelase_enter_something_for_comment")); $params = array('comment' => $comment, 'obj_id' => $obj_id, 'reply_to' => $reply_to, 'type' => $type); $this->validate_comment_functions($params); /* if($type=='video' || $type=='v') { if(!$this->video_exists($obj_id)) e(lang("class_vdo_del_err")); //Checking owner of video if(!USER_COMMENT_OWN) { if(userid()==$this->get_vid_owner($obj_id)); e(lang("usr_cmt_err2")); } } */ if (!userid() && $Cbucket->configs['anonym_comments'] != 'yes') e(lang("you_not_logged_in")); if ((!userid() && $Cbucket->configs['anonym_comments'] == 'yes') || $force_name_email) { //Checking for input name and email if (empty($_POST['name'])) e(lang("please_enter_your_name")); if (empty($_POST['email'])) e(lang("please_enter_your_email")); $name = mysql_clean($_POST['name']); $email = mysql_clean($_POST['email']); } if (empty($eh->error_list)) { $attributes = get_message_attributes($comment); if(is_array($attributes)) $attributes = json_encode ($attributes); $fields = array( 'type' => $type, 'comment' => $comment, 'comment_attributes' => ($attributes), 'type_id' => $obj_id, 'userid' => userid(), 'date_added' => now(), 'parent_id' => $reply_to, 'anonym_name' =>$name, 'anonym_email' => $email, 'comment_ip' => mysql_clean(client_ip()), 'type_owner_id' => $obj_owner ); $cid = db_insert(tbl('comments'), $fields); $db->update(tbl("users"), array("total_comments"), array("|f|total_comments+1"), " userid='" . userid() . "'"); e(lang("grp_comment_msg"), "m"); //$cid = $db->insert_id(); $own_details = $userquery->get_user_field_only($obj_owner, 'email'); $username = username(); $username = $username ? $username : post('name'); $useremail = $email; //Adding Comment Log $log_array = array ( 'success' => 'yes', 'action_obj_id' => $cid, 'action_done_id' => $obj_id, 'details' => "made a comment", 'username' => $username, 'useremail' => $useremail, ); insert_log($type . '_comment', $log_array); //sending email if (SEND_COMMENT_NOTIFICATION == 'yes' && $own_details) { global $cbemail; $tpl = $cbemail->get_template('user_comment_email'); $more_var = array ('{username}' => $username, '{obj_link}' => $obj_link . '#comment_' . $cid, '{comment}' => $comment, '{obj}' => get_obj_type($type) ); if (!is_array($var)) $var = array(); $var = array_merge($more_var, $var); $subj = $cbemail->replace($tpl['email_template_subject'], $var); $msg = nl2br($cbemail->replace($tpl['email_template'], $var)); //Now Finally Sending Email cbmail(array('to' => $own_details, 'from' => WEBSITE_EMAIL, 'subject' => $subj, 'content' => $msg)); } add_users_mentioned($comment,NULL,$cid); return $cid; } return false; } /** * Function used to get file details from database */ function file_details($file_name) { global $db; return get_file_details($file_name); /* $results = $db->select("video_files","*"," src_name='$file_name'"); if($db->num_rows==0) return false; else { return $results[0]; } */ } /** * Function used to update video and set a thumb as default * @param VID * @param THUMB NUM */ function set_default_thumb($vid, $thumb) { global $cbvid; return $cbvid->set_default_thumb($vid, $thumb); } /** * Function used to update video */ function update_video() { global $cbvid; return $cbvid->update_video(); } /** * Function used to get categorie details */ function get_category($id) { global $db; $results = $db->select(tbl("category"), "*", " categoryid='$id'"); return $results[0]; } /** * Function used to get comment from its ID * @param ID */ function get_comment($id) { global $db, $userquery; $result = $db->select(tbl("comments"), "*", " comment_id='$id'"); if ($db->num_rows > 0) { $result = $result[0]; if ($result['userid']) $udetails = $userquery->get_user_details($result['userid']); if ($udetails) $result = array_merge($result, $udetails); return $result; }else { return false; } } /** * Function used to get from database * @param TYPE_ID * @param TYPE * @param COUNT_ONLY Boolean * @param PARENT_ID * @param GET_REPLYIES_ONLY Boolean */ function get_comments($type_id = '*', $type = 'v', $count_only = FALSE, $get_type = 'all', $parent_id = NULL, $useCache = 'yes') { $params = array( 'type_id' => $type_id, 'type' => $type, 'count_only' => $count_only, 'get_type' => $get_type, 'parent_id' => $parent_id, 'cache' => $useCache ); return $this->getComments($params); } /** * Function used to get using ARRAY as paramter */ function getComments($params) { global $db, $userquery; $cond = ''; if (!$params['cache']) $params['cache'] = 'yes'; $p = $params; extract($p, EXTR_SKIP); switch ($type) { case "video": case "videos": case "v": case "vdo": { $type = 'v'; } break; case "photo": case "p": case "photos": { $type = 'p'; } break; case "topic": case "t": case "topics": { $type = 't'; } break; case "channel": case "c": case "channels": { $type = 'c'; } break; case "cl": case "collect": case "collection": case "collections": { $type = 'cl'; } break; } if (!$count_only && $params['cache'] == 'yes') { $file = $type . $type_id . str_replace(',', '_', $limit) . '-' . strtotime($last_update) . '.tmp'; $files = glob(COMM_CACHE_DIR . '/' . $type . $type_id . str_replace(',', '_', $limit) . '*'); $theFile = getName($files[0]); $theFileDetails = explode('-', $theFile); $timeDiff = time() - $theFileDetails[1]; if (file_exists(COMM_CACHE_DIR . '/' . $file) && $timeDiff < COMM_CACHE_TIME) return json_decode(file_get_contents(COMM_CACHE_DIR . '/' . $file), true); } if (!$order) $order = ' date_added DESC '; #Checking if user wants to get replies of comment if ($parent_id != NULL && $get_reply_only) { $cond .= " AND parent_id='$parent_id'"; } if ($type_id != '*') $typeid_query = "AND type_id='$type_id' "; if (!$count_only) { /** * we have to get comments in such way that * comment replies comes along with their parents * in order to achieve this, we have to create a complex logic * lets see if we can get some tips from WP commenting system ;) * HAIL Open Source */ $results = $db->select(tbl("comments"), '*' , " type='$type' $typeid_query $cond", $limit, $order); if (!$results) return false; $parent_cond = ''; $parents_array = array(); if ($results) foreach ($results as $result) { if ($result['parent_id'] && !in_array($result['parent_id'], $parents_array)) { if ($parent_cond) $parent_cond .= " OR "; $parent_cond .= " comment_id='" . $result['parent_id'] . "' "; $parents_array[] = $result['parent_id']; } } //Getting Parents $userfields = array('username', 'email', 'userid', 'avatar', 'avatar_url'); //Applying filters... $userfields = apply_filters($userfields, 'comment_user_fields'); $ufields = ''; foreach ($userfields as $userfield) { //if($ufields) $ufields .= ','; $ufields .= tbl('users.' . $userfield); } $theQuery = " SELECT " . tbl('comments.*') . $ufields . " FROM " . tbl('comments') . " LEFT JOIN " . tbl('users') . " ON " . tbl('comments.userid') . " = " . tbl('users.userid') . " WHERE type='$type' $typeid_query $cond"; if ($order) $theQuery .= " ORDER BY " . $order; if ($limit) $theQuery .= " LIMIT " . $limit; //Getting list of comments.... $CB_Query = $db->Execute($theQuery); if ($db->num_rows > 0) $results = $CB_Query->getrows(); if (!$results) return false; $parent_cond = ''; $parents_array = array(); if ($results) foreach ($results as $result) { if ($result['parent_id'] && !in_array($result['parent_id'], $parents_array)) { if ($parent_cond) $parent_cond .= " OR "; $parent_cond .= " comment_id='" . $result['parent_id'] . "' "; $parents_array[] = $result['parent_id']; } } if ($parent_cond) { //Getting list of parents.... $CB_Query = $db->Execute(" SELECT " . tbl('comments.*') . $ufields . " FROM " . tbl('comments') . " LEFT JOIN " . tbl('users') . " ON " . tbl('comments.userid') . " = " . tbl('users.userid') . " WHERE type='$type' AND ($parent_cond) " . " ORDER BY " . $order ); if ($db->num_rows > 0) $parents = $CB_Query->getrows(); }; if ($parents) foreach ($parents as $parent) $new_parents[$parent['comment_id']] = $parent; //Inserting user data $new_results = $results; $comment['comments'] = $new_results; $comment['parents'] = $new_parents; //Deleting any other previuos comment file $files = glob(COMM_CACHE_DIR . '/' . $type . $type_id . str_replace(',', '_', $limit) . '*'); if ($files) foreach ($files as $delFile) if (file_exists($delFile)) unlink($delFile); //Caching comment file if ($file) file_put_contents(COMM_CACHE_DIR . '/' . $file, json_encode($comment)); return $comment; }else { return $db->count(tbl("comments"), "comment_id", " type='$type' $typeid_query $cond"); } } function get_replies($p_id, $type = 'v') { global $db; $result = $db->select(tbl("comments,users"), "*", " type='$type' AND parent_id = '$p_id' AND " . tbl("comments.userid") . " = " . tbl("users.userid") . ""); $ayn_result = $db->select(tbl("comments,users"), "*", " type='$type' AND parent_id = '$p_id' AND " . tbl("comments.userid") . " = '0'"); if ($result && $ayn_result) $result = array_merge($result, $ayn_result); elseif (!$result && $ayn_result) $result = $ayn_result; return $result; } /** * Function used to get video owner */ function get_vid_owner($vid) { global $db; $results = $db->select(tbl("video"), "userid", " videoid='$vid'"); return $results[0]; } /** * Function used to set website template */ function set_template($template) { global $myquery; if (is_dir(STYLES_DIR . '/' . $template) && $template) { $myquery->Set_Website_Details('template_dir', $template); e(lang("template_activated"), 'm'); }else e(lang("error_occured_changing_template")); } /** * Function used to update comment */ function update_comment($cid, $text) { global $db; $db->Execute("UPDATE " . tbl("comments") . " SET comment='$text' WHERE comment_id='$cid'"); //$db->update(tbl("comments"),array("comment"),array($text)," comment_id = $cid"); } /** * Function used to validate comments */ function validate_comment_functions($params) { $type = $params['type']; $obj_id = $params['obj_id']; $comment = $params['comment']; $reply_to = $params['reply_to']; if ($type == 'video' || $type == 'v') { if (!$this->video_exists($obj_id)) e(lang("class_vdo_del_err")); //Checking owner of video //if(!USER_COMMENT_OWN) //{ // if(userid()==$this->get_vid_owner($obj_id)); /// e(lang("usr_cmt_err2")); //} } $func_array = get_functions('validate_comment_functions'); if (is_array($func_array)) { foreach ($func_array as $func) { if (function_exists($func)) { return $func($params); } } } } /** * Function used to insert note in data base for admin referance */ function insert_note($note) { global $db; $db->insert(tbl('admin_notes'), array('note,date_added,userid'), array($note, now(), userid())); } /** * Function used to get notes */ function get_notes() { global $db; return $db->select(tbl('admin_notes'), '*', " userid='" . userid() . "'", NULL, " date_added DESC "); } /** * Function usde to delete note */ function delete_note($id) { global $db; $db->delete(tbl("admin_notes"), array("note_id"), array($id)); } /** * Function used to check weather object is commentable or not */ function is_commentable($obj, $type) { switch ($type) { case "video": case "v": case "vdo": case "videos": case "vid": { if ($obj['allow_comments'] == 'yes' && config('video_comments') == 1) return true; } break; case "channel": case "user": case "users": case "u": case "c": { if ($obj['allow_comments'] == 'Yes' && config('channel_comments') == 1) return true; } break; case "collection": case "collect": case "cl": { if ($obj['allow_comments'] == 'yes') return true; } break; case "photo": case "p": case "photos": { if ($obj['allow_comments'] == 'yes' && config('photo_comments') == 1) return true; } } return false; } /** * Function used to get list of items in conversion queue * @params $Cond, $limit,$order */ function get_conversion_queue($cond = NULL, $limit = NULL, $order = 'date_added DESC') { global $db; $result = $db->select(tbl("conversion_queue"), "*", $cond, $limit, $oder); if ($db->num_rows > 0) return $result; else return false; } /** * function used to remove queue */ function queue_action($action, $id) { global $db; switch ($action) { case "delete": $db->execute("DELETE from " . tbl('conversion_queue') . " WHERE cqueue_id ='$id' "); break; case "processed": $db->update(tbl('conversion_queue'), array('cqueue_conversion'), array('yes'), " cqueue_id ='$id' "); break; case "pending": $db->update(tbl('conversion_queue'), array('cqueue_conversion'), array('no'), " cqueue_id ='$id' "); break; } } /** * Add like for ClipBuckets * * @param ARRAY $params * @return BOOLEAN */ function add_like($array) { global $db; $is_liked = $this->is_liked($array); $liked = $array['liked']; if (!$liked != 'no') $liked = 'yes'; if($is_liked) { if($is_liked['liked']!=$liked) $this->update_like($is_liked['like_id'],$liked); return true; } //Adding feed.. $userid = $array['userid']; if (!$userid) $userid = userid(); $fields = array( 'type' => $array['type'], 'object_id' => $array['object_id'], 'liked' => $liked, 'time' => time(), 'userid' => $userid ); $insert_id = db_insert(tbl('likes'), $fields); if ($insert_id) return $insert_id; else return false; } function add_dislike($array) { $array['liked'] = 'no'; return $this->add_like($array); } /** * Function used to dislike a video * * @param ARRAY */ /** * function used to unlike object , removes the entry.. * * @param ARRAY */ function remove_like($array) { global $db; $liked = $array['liked']; if (!$liked != 'no') $liked = 'yes'; $userid = $array['userid']; if (!$userid) $userid = userid(); $fields = array( 'type' => $array['type'], 'object_id' => $array['object_id'], 'userid' => $userid ); $cond = ""; foreach ($fields as $name => $val) { if ($cond) $cond .= " AND "; $cond .= " ".$name."'".$val."'"; } $db->execute("DELETE FROM ".tbl('feeds')." WHERE ".$cond); return true; } /** * check if user has already liked the object or not */ function is_liked($array,$liked=NULL) { global $db; $userid = $array['userid']; if (!$userid) $userid = userid(); $fields = array( 'type' => $array['type'], 'object_id' => $array['object_id'], 'userid' => $userid ); if($liked) { $fields['liked'] = $liked; } $cond = ""; foreach ($fields as $name => $val) { if ($cond) $cond .= " AND "; $cond .= " ".$name."'".$val."'"; } $results = db_select("SELECT FROM ".tbl('feeds')." WHERE ".$cond); $results = $results[0]; if($db->num_rows>0) return $results; else { return false; } } /** * Update liked */ function update_like($like_id,$liked='yes') { global $db; $fields = array( 'liked' => $liked ); db_update(tbl('likes'),$fields," like_id='$like_id' "); return true; } } ?>