Files
SIGE-WEB-snapshot/wp-content/plugins/teachpress/core/publications/class-db-bookmarks.php

115 lines
3.6 KiB
PHP

<?php
/**
* This file contains the database access class for publication bookmarks
* @package teachpress
* @subpackage core
* @license http://www.gnu.org/licenses/gpl-2.0.html GPLv2 or later
*/
/**
* Contains functions for getting, adding and deleting of bookmarks
* @package teachpress
* @subpackage database
* @since 5.0.0
*/
class TP_Bookmarks {
/**
* Returns an arrayor object of bookmarks of an user
*
* @since 5.0.0
* @param array $args {
* @type int user User IDs (separated by comma)
* @type int pub_id Publication IDs (separated by comma)
* @type string output_type OBJECT, ARRAY_N or ARRAY_A, default is OBJECT
* }
* @return array|object
*/
public static function get_bookmarks( $args = array() ) {
$defaults = array(
'user' => '',
'pub_id' => '',
'output_type' => OBJECT
);
$atts = wp_parse_args( $args, $defaults );
global $wpdb;
$select = "SELECT * FROM " . TEACHPRESS_USER;
$awhere = array();
$awhere[] = TP_DB_Helpers::generate_where_clause($atts['user'], "user", "OR", "=");
$awhere[] = TP_DB_Helpers::generate_where_clause($atts['pub_id'], "pub_id", "OR", "=");
$where = TP_DB_Helpers::compose_clause($awhere);
$sql = $select . $where;
return $wpdb->get_results($sql, $atts['output_type']);
}
/**
* Adds a new bookmark for a user
* @param int $pub_id The publication ID
* @param int $user The user ID
* @param bool $exist_check true = Checks if the bookmark already exists before inserting, default: false
* @return int The id of the created element
* @since 5.0.0
*/
public static function add_bookmark($pub_id, $user, $exist_check = false) {
global $wpdb;
// Check if the bookmark already exists before inserting
if ( $exist_check === true ) {
$check = TP_Bookmarks::bookmark_exists($pub_id, $user);
if ( $check === true ) {
return;
}
}
// Add the bookmark
$wpdb->insert(
TEACHPRESS_USER,
array(
'pub_id' => $pub_id,
'user' => $user),
array('%d', '%d') );
return $wpdb->insert_id;
}
/**
* Delete a bookmark
* @param int $bookmark_id
* @since 5.0.0
*/
public static function delete_bookmark($bookmark_id) {
global $wpdb;
$wpdb->query( "DELETE FROM " . TEACHPRESS_USER . " WHERE `bookmark_id` = '" . intval($bookmark_id) . "'" );
}
/**
* Deletes all bookmarks of a publication
* @param int $pub_id
* @since 8.1.0
*/
public static function delete_bookmarks_by_publication($pub_id) {
global $wpdb;
$wpdb->query( "DELETE FROM " . TEACHPRESS_USER . " WHERE `pub_id` = '" . intval($pub_id) . "'" );
}
/**
* Checks if an user has bookmarked a publication. Returns true the bookmark exists.
* @param int $pub_id The publication ID
* @param int $user_id The user ID
* @return boolean
* @since 5.0.0
*/
public static function bookmark_exists($pub_id, $user_id) {
global $wpdb;
$test = $wpdb->query("SELECT `pub_id` FROM " . TEACHPRESS_USER . " WHERE `pub_id`='" . intval($pub_id) . "' AND `user` = '" . intval($user_id) . "'");
if ($test != 0) {
return true;
}
return false;
}
}