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: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146:
<?php
class CommentsTopicDAO
{
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 comments_topic_exists_by_module_id($module_id)
{
$parameters = array(
'module_id' => $module_id,
);
return self::$db_querier->row_exists(DB_TABLE_COMMENTS_TOPIC, "WHERE module_id = :module_id", $parameters);
}
public static function get_id_topic_module($module_id, $id_in_module, $topic_identifier = CommentsTopic::DEFAULT_TOPIC_IDENTIFIER)
{
$condition = "WHERE id_in_module = :id_in_module AND module_id = :module_id AND topic_identifier=:topic_identifier";
$parameters = array(
'module_id' => $module_id,
'id_in_module' => $id_in_module,
'topic_identifier' => $topic_identifier,
);
return self::$db_querier->get_column_value(DB_TABLE_COMMENTS_TOPIC, 'id_topic', $condition, $parameters);
}
public static function get_id_topics_module($module_id)
{
$condition = "WHERE module_id = :module_id";
$parameters = array(
'module_id' => $module_id
);
$id_topics = array();
$result = self::$db_querier->select_rows(DB_TABLE_COMMENTS_TOPIC, array('id_topic'), $condition, $parameters);
while ($row = $result->fetch())
{
$id_topics[] = $row['id_topic'];
}
$result->dispose();
return $id_topics;
}
public static function create_topic($module_id, $id_in_module, $topic_identifier, $path)
{
$columns = array(
'module_id' => $module_id,
'id_in_module' => $id_in_module,
'topic_identifier' => $topic_identifier,
'number_comments' => 0,
'is_locked' => 0,
'path' => $path
);
$result = self::$db_querier->insert(DB_TABLE_COMMENTS_TOPIC, $columns);
return $result->get_last_inserted_id();
}
public static function topic_exists($module_id, $id_in_module, $topic_identifier)
{
$condition = "WHERE id_in_module = :id_in_module AND module_id = :module_id AND topic_identifier=:topic_identifier";
$parameters = array(
'module_id' => $module_id,
'id_in_module' => $id_in_module,
'topic_identifier' => $topic_identifier
);
return self::$db_querier->row_exists(DB_TABLE_COMMENTS_TOPIC, $condition, $parameters);
}
public static function delete_topics_module($module_id)
{
$condition = "WHERE module_id = :module_id";
$parameters = array('module_id' => $module_id);
self::$db_querier->delete(DB_TABLE_COMMENTS_TOPIC, $condition, $parameters);
}
public static function delete_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);
Debug::dump(self::$db_querier->delete(DB_TABLE_COMMENTS_TOPIC, $condition, $parameters));
}
public static function incremente_number_comments_topic($id_topic)
{
self::$db_querier->inject("UPDATE ". DB_TABLE_COMMENTS_TOPIC ." SET number_comments = number_comments + 1 WHERE id_topic = '" . $id_topic . "'");
}
public static function decremente_number_comments_topic($id_topic)
{
self::$db_querier->inject("UPDATE ". DB_TABLE_COMMENTS_TOPIC ." SET number_comments = number_comments - 1 WHERE id_topic = '" . $id_topic . "'");
}
public static function comments_topic_locked($module_id, $id_in_module, $topic_identifier)
{
$condition = "WHERE id_in_module = :id_in_module AND module_id = :module_id AND topic_identifier=:topic_identifier";
$parameters = array(
'id_in_module' => $id_in_module,
'module_id' => $module_id,
'topic_identifier' => $topic_identifier
);
return self::$db_querier->get_column_value(DB_TABLE_COMMENTS_TOPIC, 'is_locked', $condition, $parameters) > 0 ? true : false;
}
public static function lock_topic($module_id, $id_in_module, $topic_identifier)
{
$columns = array('is_locked' => 1);
$condition = "WHERE id_in_module = :id_in_module AND module_id = :module_id AND topic_identifier=:topic_identifier";
$parameters = array(
'id_in_module' => $id_in_module,
'module_id' => $module_id,
'topic_identifier' => $topic_identifier
);
self::$db_querier->update(DB_TABLE_COMMENTS_TOPIC, $columns, $condition, $parameters);
}
public static function unlock_topic($module_id, $id_in_module, $topic_identifier)
{
$columns = array('is_locked' => 0);
$condition = "WHERE id_in_module = :id_in_module AND module_id = :module_id AND topic_identifier=:topic_identifier";
$parameters = array(
'id_in_module' => $id_in_module,
'module_id' => $module_id,
'topic_identifier' => $topic_identifier
);
self::$db_querier->update(DB_TABLE_COMMENTS_TOPIC, $columns, $condition, $parameters);
}
}
?>