1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-04 23:44:25 +03:00
ifhub.club/classes/modules/comment/mapper/Comment.mapper.class.php

290 lines
7.1 KiB
PHP

<?php
/*-------------------------------------------------------
*
* LiveStreet Engine Social Networking
* Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
* Official site: www.livestreet.ru
* Contact e-mail: rus.engine@gmail.com
*
* GNU General Public License, version 2:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/
class Mapper_Comment extends Mapper {
public function GetCommentsRatingByDate($sDate,$sTargetType,$iLimit) {
$sql = "SELECT
comment_id
FROM
".Config::Get('db.table.comment')."
WHERE
target_type = ?
AND
comment_delete = 0
AND
comment_publish = 1
AND
comment_date >= ?
AND
comment_rating >= 0
ORDER by comment_rating desc, comment_id desc
LIMIT 0, ?d ";
$aComments=array();
if ($aRows=$this->oDb->select($sql,$sTargetType,$sDate,$iLimit)) {
foreach ($aRows as $aRow) {
$aComments[]=$aRow['comment_id'];
}
}
return $aComments;
}
public function GetCommentUnique($sTargetId,$sTargetType,$sUserId,$sCommentPid,$sHash) {
$sql = "SELECT comment_id FROM ".Config::Get('db.table.comment')."
WHERE
target_id = ?d
AND
target_type = ?
AND
user_id = ?d
AND
((comment_pid = ?) or (? is NULL and comment_pid is NULL))
AND
comment_text_hash =?
";
if ($aRow=$this->oDb->selectRow($sql,$sTargetId,$sTargetType,$sUserId,$sCommentPid,$sCommentPid,$sHash)) {
return $aRow['comment_id'];
}
return null;
}
public function GetCommentsAll($sTargetType,&$iCount,$iCurrPage,$iPerPage) {
$sql = "SELECT
comment_id
FROM
".Config::Get('db.table.comment')."
WHERE
target_type = ?
AND
comment_delete = 0
AND
comment_publish = 1
ORDER by comment_id desc
LIMIT ?d, ?d ";
$aComments=array();
if ($aRows=$this->oDb->selectPage($iCount,$sql,$sTargetType,($iCurrPage-1)*$iPerPage, $iPerPage)) {
foreach ($aRows as $aRow) {
$aComments[]=$aRow['comment_id'];
}
}
return $aComments;
}
public function GetCommentsByArrayId($aArrayId) {
if (!is_array($aArrayId) or count($aArrayId)==0) {
return array();
}
$sql = "SELECT
*
FROM
".Config::Get('db.table.comment')."
WHERE
comment_id IN(?a)
ORDER by FIELD(comment_id,?a)";
$aComments=array();
if ($aRows=$this->oDb->select($sql,$aArrayId,$aArrayId)) {
foreach ($aRows as $aRow) {
$aComments[]=Engine::GetEntity('Comment',$aRow);
}
}
return $aComments;
}
public function GetCommentsOnline($sTargetType,$iLimit) {
$sql = "SELECT
comment_id
FROM
".Config::Get('db.table.comment_online')."
WHERE
target_type = ?
ORDER by comment_online_id desc limit 0, ?d ; ";
$aComments=array();
if ($aRows=$this->oDb->select($sql,$sTargetType,$iLimit)) {
foreach ($aRows as $aRow) {
$aComments[]=$aRow['comment_id'];
}
}
return $aComments;
}
public function GetCommentsByTargetId($sId,$sTargetType) {
$sql = "SELECT
comment_id,
comment_id as ARRAY_KEY,
comment_pid as PARENT_KEY
FROM
".Config::Get('db.table.comment')."
WHERE
target_id = ?d
AND
target_type = ?
ORDER by comment_id asc;
";
if ($aRows=$this->oDb->select($sql,$sId,$sTargetType)) {
return $aRows;
}
return null;
}
public function GetCommentsNewByTargetId($sId,$sTargetType,$sIdCommentLast) {
$sql = "SELECT
comment_id
FROM
".Config::Get('db.table.comment')."
WHERE
target_id = ?d
AND
target_type = ?
AND
comment_id > ?d
ORDER by comment_id asc;
";
$aComments=array();
if ($aRows=$this->oDb->select($sql,$sId,$sTargetType,$sIdCommentLast)) {
foreach ($aRows as $aRow) {
$aComments[]=$aRow['comment_id'];
}
}
return $aComments;
}
public function GetCommentsByUserId($sId,$sTargetType,&$iCount,$iCurrPage,$iPerPage) {
$sql = "SELECT
comment_id
FROM
".Config::Get('db.table.comment')."
WHERE
user_id = ?d
AND
target_type= ?
AND
comment_delete = 0
AND
comment_publish = 1
ORDER by comment_id desc
LIMIT ?d, ?d ";
$aComments=array();
if ($aRows=$this->oDb->selectPage($iCount,$sql,$sId,$sTargetType,($iCurrPage-1)*$iPerPage, $iPerPage)) {
foreach ($aRows as $aRow) {
$aComments[]=$aRow['comment_id'];
}
}
return $aComments;
}
public function GetCountCommentsByUserId($sId,$sTargetType) {
$sql = "SELECT
count(comment_id) as count
FROM
".Config::Get('db.table.comment')."
WHERE
user_id = ?d
AND
target_type= ?
AND
comment_delete = 0
AND
comment_publish = 1
";
if ($aRow=$this->oDb->selectRow($sql,$sId,$sTargetType)) {
return $aRow['count'];
}
return false;
}
public function AddComment(CommentEntity_Comment $oComment) {
$sql = "INSERT INTO ".Config::Get('db.table.comment')."
(comment_pid,
target_id,
target_type,
user_id,
comment_text,
comment_date,
comment_user_ip,
comment_text_hash
)
VALUES(?, ?d, ?, ?d, ?, ?, ?, ?)
";
if ($iId=$this->oDb->query($sql,$oComment->getPid(),$oComment->getTargetId(),$oComment->getTargetType(),$oComment->getUserId(),$oComment->getText(),$oComment->getDate(),$oComment->getUserIp(),$oComment->getTextHash()))
{
return $iId;
}
return false;
}
public function AddCommentOnline(CommentEntity_CommentOnline $oCommentOnline) {
$sql = "REPLACE INTO ".Config::Get('db.table.comment_online')."
SET
target_id= ?d ,
target_type= ? ,
comment_id= ?d
";
if ($iId=$this->oDb->query($sql,$oCommentOnline->getTargetId(),$oCommentOnline->getTargetType(),$oCommentOnline->getCommentId()))
{
return $iId;
}
return false;
}
public function DeleteCommentOnlineByTargetId($sTargetId,$sTargetType) {
$sql = "DELETE FROM ".Config::Get('db.table.comment_online')." WHERE target_id = ?d and target_type = ? ";
if ($this->oDb->query($sql,$sTargetId,$sTargetType))
{
return true;
}
return false;
}
public function UpdateComment(CommentEntity_Comment $oComment) {
$sql = "UPDATE ".Config::Get('db.table.comment')."
SET
comment_text= ?,
comment_rating= ?f,
comment_count_vote= ?d,
comment_delete = ?d ,
comment_publish = ?d ,
comment_text_hash = ?
WHERE
comment_id = ?d
";
if ($this->oDb->query($sql,$oComment->getText(),$oComment->getRating(),$oComment->getCountVote(),$oComment->getDelete(),$oComment->getPublish(),$oComment->getTextHash(),$oComment->getId())) {
return true;
}
return false;
}
public function SetCommentsPublish($sTargetId,$sTargetType,$iPublish) {
$sql = "UPDATE ".Config::Get('db.table.comment')."
SET
comment_publish= ?
WHERE
target_id = ?d AND target_type = ?
";
if ($this->oDb->query($sql,$iPublish,$sTargetId,$sTargetType)) {
return true;
}
return false;
}
}
?>