Classes

File content/comments/CommentsDAO.class.php

File content/comments/CommentsDAO.class.php

  1:   2:   3:   4:   5:   6:   7:   8:   9:  10:  11:  12:  13:  14:  15:  16:  17:  18:  19:  20:  21:  22:  23:  24:  25:  26:  27:  28:  29:  30:  31:  32:  33:  34:  35:  36:  37:  38:  39:  40:  41:  42:  43:  44:  45:  46:  47:  48:  49:  50:  51:  52:  53:  54:  55:  56:  57:  58:  59:  60:  61:  62:  63:  64:  65:  66:  67:  68:  69:  70:  71:  72:  73:  74:  75:  76:  77:  78:  79:  80:  81:  82:  83:  84:  85:  86:  87:  88:  89:  90:  91:  92:  93:  94:  95:  96:  97:  98:  99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 
<?php
/**
 * @package     Content
 * @subpackage  Comments
 * @copyright   &copy; 2005-2019 PHPBoost
 * @license     https://www.gnu.org/licenses/gpl-3.0.html GNU/GPL-3.0
 * @author      Kevin MASSY <reidlos@phpboost.com>
 * @version     PHPBoost 5.2 - last update: 2014 12 22
 * @since       PHPBoost 3.0 - 2011 09 25
*/

class CommentsDAO
{
    private static $comments_cache;
    private static $db_querier;

    public static function __static()
    {
        self::$comments_cache = CommentsCache::load();
        self::$db_querier = PersistenceContext::get_querier();
    }

    public static function delete_comments_by_topic($id_topic)
    {
        $condition = "WHERE id_topic = :id_topic";
        $parameters = array('id_topic' => $id_topic);
        self::$db_querier->delete(DB_TABLE_COMMENTS, $condition, $parameters);
    }

    public static function delete_comments_topic_module($module_id, $id_in_module)
    {
        $condition = "WHERE module_id = :module_id AND id_in_module = :id_in_module";
        $parameters = array('module_id' => $module_id, 'id_in_module' => $id_in_module);
        self::$db_querier->delete(DB_TABLE_COMMENTS, $condition, $parameters);
    }

    public static function delete_comments_module($id_topics)
    {
        if ($id_topics)
        {
            $condition= 'WHERE id_topic IN (' . implode(',', $id_topics) . ')';
            $parameters= array('id_topics'=> $id_topics);
            self::$db_querier->delete(DB_TABLE_COMMENTS, $condition, $parameters);
        }
    }

    public static function delete_comment($comment_id)
    {
        $condition = "WHERE id = :id";
        $parameters = array('id' => $comment_id);
        self::$db_querier->delete(DB_TABLE_COMMENTS, $condition, $parameters);
    }

    public static function get_user_id_posted_comment($comment_id)
    {
        $comment = self::$comments_cache->get_comment($comment_id);
        return $comment['user_id'];
    }

    public static function get_last_comment_added($user_id)
    {
        if ($user_id !== '-1')
        {
            return self::$db_querier->get_column_value(DB_TABLE_COMMENTS, 'MAX(timestamp)', 'WHERE user_id=:user_id', array('user_id' => $user_id));
        }
        else
        {
            return self::$db_querier->get_column_value(DB_TABLE_COMMENTS, 'MAX(timestamp)', 'WHERE user_ip=:user_ip', array('user_ip' => AppContext::get_request()->get_ip_address()));
        }
    }

    public static function get_number_comments($module_id, $id_in_module, $topic_identifier)
    {
        $comments = self::$comments_cache->get_comments_by_module($module_id, $id_in_module, $topic_identifier);
        if (!empty($comments))
        {
            return count($comments);
        }
        return 0;
    }

    public static function comment_exists($comment_id)
    {
        return self::$comments_cache->comment_exists($comment_id);
    }

    public static function add_comment($id_topic, $message, $user_id, $pseudo, $user_ip)
    {
        $columns = array(
            'id_topic' => $id_topic,
            'user_id' => $user_id,
            'pseudo' => TextHelper::htmlspecialchars($pseudo),
            'user_ip' => TextHelper::htmlspecialchars($user_ip),
            'timestamp' => time(),
            'message' => $message
        );
        $result = self::$db_querier->insert(DB_TABLE_COMMENTS, $columns);
        return $result->get_last_inserted_id();
    }

    public static function edit_comment($comment_id, $message)
    {
        $columns = array(
            'message' => $message
        );
        $condition = "WHERE id = :id";
        $parameters = array(
            'id' => $comment_id
        );
        self::$db_querier->update(DB_TABLE_COMMENTS, $columns, $condition, $parameters);
    }
}
?>