<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); if (CModule::IncludeModuleEx('prmedia.treelikecomments') != MODULE_DEMO_EXPIRED) { if ($this->StartResultCache($arParams['CACHE_TIME'])) { CModule::IncludeModule("prmedia.treelikecomments"); CModule::IncludeModule("iblock"); $arResult['TITLE'] = $arParams['TITLE']; $res = CTreelikeComments::getPopularElements($arParams['COUNT']); while ($arRes = $res->GetNext()) { $element = CIBlockElement::GetByID($arRes['OBJECT_ID']); if ($arElement = $element->GetNext()) { $detailURL = $arParams['DETAIL_PAGE_URL']; if (preg_match('/ID/i', $detailURL)) $detailURL = str_replace('#ID#', $arElement['ID'], $detailURL); if (preg_match('/CODE/i', $detailURL)) $detailURL = str_replace('#CODE#', $arElement['CODE'], $detailURL); if (preg_match('/DETAIL_PAGE_URL/i', $detailURL)) $detailURL = str_replace('#DETAIL_PAGE_URL#', $arElement['DETAIL_PAGE_URL'], $detailURL); if (preg_match('/SECTION_ID/i', $detailURL)) $detailURL = str_replace('#SECTION_ID#', $arElement['IBLOCK_SECTION_ID'], $detailURL); if (preg_match('/SECTION_CODE/i', $detailURL))
public static function import_cancel() { $moduleId = 'prmedia.treelikecomments'; // retrieve or init session storage $sessionStorage = $_SESSION['tlc_import_cancel']; if ($_REQUEST['start'] == 'Y') { $sessionStorage = array( 'processing_time' => time(), 'current_count' => 0, 'total_count' => CTreelikeForumImporter::getImportedCount() ); } // import cancel comments... $obComment = new CTreelikeComments; global $DB; $is_finish = true; $currentTime = time(); $rsCommentId = $DB->Query('SELECT COMMENT_ID FROM prmedia_treelike_comments_import_forum'); while ($arCommentId = $rsCommentId->Fetch()) { $is_finish = false; $commentId = intval($arCommentId['COMMENT_ID']); $obComment->Delete($commentId); CTreelikeForumImporter::removeImportedComment($commentId); $sessionStorage['current_count']++; // one step is one second if ($currentTime != time()) { break; } } if ($is_finish) { // go to finish step echo '<script>document.getElementsByClassName("wizard-next-button")[0].click();</script>'; CTreelikeForumImporter::clearCache(); return; } // progress message $text = GetMessage('PRMEDIA_WIZARDS_IMPORT_CANCEL_FORUM_PROGRESS_MESSAGE'); $arReplace = array( "#IMPORTED#" => $sessionStorage['current_count'], "#COUNT#" => $sessionStorage['total_count'], "#TIME#" => gmdate("i:s", time() - $sessionStorage['processing_time']) ); $progressMessage = str_replace(array_keys($arReplace), $arReplace, $text); CAdminMessage::ShowMessage(array( "TYPE" => "PROGRESS", "MESSAGE" => GetMessage('PRMEDIA_SS_DIST_CANCEL_PROGRESS_TITLE'), "DETAILS" => $progressMessage, "HTML" => true, "PROGRESS_VALUE" => $sessionStorage['current_count'], "PROGRESS_TOTAL" => $sessionStorage['total_count'] )); echo "<script>jsPrmediaCommentImporter.update();</script>"; $_SESSION['tlc_import_cancel'] = $sessionStorage; }
if ($action == 'deactivate' && isset($id_element)) { $DB->query("UPDATE prmedia_treelike_comments SET ACTIVATED = 0 WHERE ID = $id_element"); $objectId = $obComment->GetObjectData($id_element); @$CACHE_MANAGER->ClearByTag("prmedia_treelike_comments_" . $objectId); LocalRedirect('/bitrix/admin/tc_comment_list.php?result=deactivated'); } if (in_array($action, array("ban", "ban_delete")) && isset($id_element)) { // add user ip into ban $elementId = 5; $obComment = new CTreelikeComments; $rsComment = $obComment->GetByID($id_element); if ($arComment = $rsComment->Fetch()) { $addr = $arComment['REMOTE_ADDR']; $ips = trim(COption::GetOptionString("prmedia.treelikecomments", "ban", "")); $arIPs = explode(",", $ips); foreach ($arIPs as $key => $ip) { $ip = trim($ip); if (empty($ip)) { unset($arIPs[$key]); continue; } $arIPs[$key] = trim($ip);
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/components/prmedia/treelike_comments/lang/ru/ajax_actions.php"); ?> <? $MODULE_ID = "prmedia.treelikecomments"; CModule::IncludeModule($MODULE_ID); $AxObject = new CTreelikeComments; global $CACHE_MANAGER; global $USER; // activate (moderator action) if(isset($_POST['ACTIVATE_ON'])) { $objectID = $AxObject->GetObjectData($_POST['ACTIVATE_ON']); $AxObject->Activate($_POST['ACTIVATE_ON']); @$CACHE_MANAGER->ClearByTag("prmedia_treelike_comments_".$objectID); } // vote up if(isset($_POST['VoteUp'])) { if(!$AxObject->IsUserVoted($_POST['VoteUp'], $USER->GetID())) { $users = array( "USER_ID" => $USER->GetID(),
<? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/prmedia.treelikecomments/include.php"); IncludeModuleLangFile(__FILE__); $APPLICATION->SetTitle(GetMessage("PRMEDIA_TC_COMMENT_EDIT_TITLE")); require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php"); CJSCore::Init(array("jquery")); $ID = $_GET['COMMENT_ID']; $comment = new CTreelikeComments; $aTabs = array( array("DIV" => "edit1", "TAB" => GetMessage("PRMEDIA_TC_COMMENT_EDIT"), "ICON" => "ib_settings", "TITLE" => GetMessage("PRMEDIA_TC_COMMENT")), ); $tabControl = new CAdminTabControl("tabControl", $aTabs); if($REQUEST_METHOD == "POST") { if(trim($_POST["AUTHOR_NAME"]) == "") $_POST["AUTHOR_NAME"] = NULL; $arUpdate = array( "OBJECT_ID" => intval($_POST["OBJECT_ID"]), "AUTHOR_NAME" => $_POST["AUTHOR_NAME"], "COMMENT" => trim($_POST["COMMENT"]), "ACTIVATED" => intval($_POST["ACTIVATED"]), ); $comment->Update($_POST['currentID'], $arUpdate);
/** * Checking treelike comment for spam * @param &array Comment fields to check * @return null|boolean NULL when success or FALSE when spam detected */ function OnBeforePrmediaCommentAddHandler(&$arFields) { global $APPLICATION, $USER; $ct_status = COption::GetOptionString('cleantalk.antispam', 'status', '0'); $ct_comment_treelike = COption::GetOptionString('cleantalk.antispam', 'form_comment_treelike', '0'); if ($ct_status == 1 && $ct_comment_treelike == 1) { if ($USER->IsAdmin()) { return; } // Skip authorized user with more than 5 approved comments if ($USER->IsAuthorized()) { $approved_comments = CTreelikeComments::GetList(array('ID' => 'ASC'), array('USER_ID' => $arFields['USER_ID'], 'ACTIVATED' => 1), '', TRUE); if (intval($approved_comments) > 5) { return; } } $aComment = array(); $aComment['type'] = 'comment'; $aComment['sender_email'] = isset($arFields['EMAIL']) ? $arFields['EMAIL'] : ''; $aComment['sender_nickname'] = isset($arFields['AUTHOR_NAME']) ? $arFields['AUTHOR_NAME'] : ''; $aComment['message_title'] = ''; $aComment['message_body'] = isset($arFields['COMMENT']) ? $arFields['COMMENT'] : ''; $aComment['example_title'] = ''; $aComment['example_body'] = ''; $aComment['example_comments'] = ''; if (COption::GetOptionString('cleantalk.antispam', 'form_send_example', '0') == 1) { // Find last 10 approved comments $db_res = CTreelikeComments::GetList(array('DATE' => 'DESC'), array('OBJECT_ID_NUMBER' => $arFields['OBJECT_ID'], 'ACTIVATED' => 1), 10); while ($ar_res = $db_res->Fetch()) { $aComment['example_comments'] .= $ar_res['COMMENT'] . "\n\n"; } } $aResult = self::CheckAllBefore($aComment, TRUE); if (isset($aResult) && is_array($aResult)) { if ($aResult['errno'] == 0) { if ($aResult['allow'] == 1) { // Not spammer - just return; return; } else { if ($aResult['stop_queue'] == 1) { // Spammer and stop_queue - return false and throw if (preg_match('//u', $aResult['ct_result_comment'])) { $err_str = preg_replace('/^[^\\*]*?\\*\\*\\*|\\*\\*\\*[^\\*]*?$/iu', '', $aResult['ct_result_comment']); $err_str = preg_replace('/<[^<>]*>/iu', '', $err_str); } else { $err_str = preg_replace('/^[^\\*]*?\\*\\*\\*|\\*\\*\\*[^\\*]*?$/i', '', $aResult['ct_result_comment']); $err_str = preg_replace('/<[^<>]*>/i', '', $err_str); } $APPLICATION->ThrowException($err_str); return FALSE; } else { // Spammer and NOT stop_queue - to manual approvement // ACTIVATED = 0 /* // doesn't work - TreeLike Comments uses // deprecated ExecuteModuleEvent // instead of ExecuteModuleEventEx // $arFields are not passwd by ref // (See source - $args[] = func_get_arg($i)) // so I cannot change 'ACTIVATED' $arFields['ACTIVATED'] = 0; return; */ if (preg_match('//u', $aResult['ct_result_comment'])) { $err_str = preg_replace('/^[^\\*]*?\\*\\*\\*|\\*\\*\\*[^\\*]*?$/iu', '', $aResult['ct_result_comment']); $err_str = preg_replace('/<[^<>]*>/iu', '', $err_str); } else { $err_str = preg_replace('/^[^\\*]*?\\*\\*\\*|\\*\\*\\*[^\\*]*?$/i', '', $aResult['ct_result_comment']); $err_str = preg_replace('/<[^<>]*>/i', '', $err_str); } $APPLICATION->ThrowException($err_str); return FALSE; } } } } } }
function getComments($PARENT_ID, $DEPTH_LEVEL, &$comments, &$left_margin, $date_format, $userlink, $commentLink, $max_depth_level, $asName, &$arIDs, $templateFolder, $canModify) { $arFilter = array("OBJECT_ID_NUMBER" => OBJECT_ID, "PARENT_ID" => $PARENT_ID); $res = CTreelikeComments::GetList(array("ID" => "DESC"), $arFilter); while ($ob = $res->GetNext()) { if ($ob['USER_ID'] != NULL) { $link = $userlink; if (preg_match('/USER_LOGIN/i', $link)) { $userlogin_before = "#USER_LOGIN#"; $userlogin_after = $ob['LOGIN']; $link = str_replace($userlogin_before, $userlogin_after, $link); } if (preg_match('/USER_ID/i', $link)) { $id_before = "#USER_ID#"; $id_after = $ob['USER_ID']; $link = str_replace($id_before, $id_after, $link); } if (preg_match('/PERSONAL_WWW/i', $link)) { $id_before = "#PERSONAL_WWW#"; $id_after = ""; $arFilter = array( "ID" => $ob['USER_ID'] ); $arSelectParams = array( "FIELDS" => array( "ID", "PERSONAL_WWW" ) ); $rsUser = CUser::GetList($by = "ID", $order = "DESC", $arFilter, $arSelectParams); if ($arUser = $rsUser->Fetch()) { $id_after = $arUser['PERSONAL_WWW']; } $link = str_replace($id_before, $id_after, $link); } } $user = array( "ID" => $ob['USER_ID'], "LOGIN" => $ob['LOGIN'], "NAME" => $ob['NAME'], "LAST_NAME" => $ob['LAST_NAME'], "PERSONAL_PHOTO" => CFile::GetPath($ob['PERSONAL_PHOTO']), "USERLINK" => $link ); switch ($asName) { case "name_lastname": if ($user['NAME'] != "" && $user['LAST_NAME'] != "") $user['LOGIN'] = $user['NAME'] . " " . $user['LAST_NAME']; break; case "name": if ($user['NAME'] != "") $user['LOGIN'] = $user['NAME']; break; } if ($DEPTH_LEVEL > $max_depth_level - 1) $DEPTH_LEVEL = $max_depth_level - 1; if ($commentLink == "Y") $cLink = "comment_" . $ob["ID"]; else $cLink = "N"; $arIDs[] = $ob['ID']; // add modification date $commentText = $ob['~COMMENT']; $commentModify = ""; if (!empty($ob['DATE_MODIFY']) && $canModify == "Y") { $commentModify = GetMessage('CHANGE_COMMENT_MSG'); $commentDateTime = explode(" ", $ob['DATE_MODIFY']); $commentModify = str_replace("#DATE#", $commentDateTime[0], $commentModify); $commentModify = str_replace("#TIME#", $commentDateTime[1], $commentModify); } // if user is author add modification link $canEdit = "N"; if (!empty($ob['USER_ID']) && $ob['USER_ID'] == CUser::GetID() && $canModify == "Y") { $canEdit = "Y"; } $commentHiddenContent = TreelikeCommentsGetSmiles($ob['~COMMENT'], array( ":)" => "smile.png", ":D" => "xd.png", ":(" => "sad.png", "x_x" => "x_x.png", "0_0" => "0_0.png", ), array("FOLDER" => $templateFolder) ); $commentHiddenContent = CTreelikeComments::ParseTextBack($commentHiddenContent); $commentHiddenContent = strip_tags($commentHiddenContent); $comments[$ob['ID']] = array( "ID" => $ob['ID'], "DEPTH_LEVEL" => $DEPTH_LEVEL, "PARENT_ID" => $ob['PARENT_ID'], "LEFT_MARGIN" => $DEPTH_LEVEL * $left_margin, "USER" => $user, "COMMENT_LINK" => $cLink, "COMMENT" => $commentText, "AUTHOR_NAME" => $ob['AUTHOR_NAME'], "DATE_CREATE" => FormatDate($date_format, strtotime($ob['NEW_DATE'])), "ACTIVATED" => $ob['ACTIVATED'], "VoteUp" => 0, "VoteDown" => 0, "TOTAL_VOTE" => 0, "COMMENT_HIDDEN_CONTENT" => $commentHiddenContent, "MODIFY_STRING" => $commentModify, "DATE_MODIFY" => $ob['DATE_MODIFY'], "CAN_EDIT" => $canEdit ); getComments($ob['ID'], $DEPTH_LEVEL + 1, $comments, $left_margin, $date_format, $userlink, $commentLink, $max_depth_level, $asName, $arIDs, $templateFolder, $canModify); } }
CJSCore::Init(array('jquery')); // logic CModule::IncludeModule('prmedia.treelikecomments'); CModule::IncludeModule('iblock'); if (empty($arGadgetParams['COUNT'])) { $arGadgetParams['COUNT'] = 10; } // delete comment if (!empty($_GET['delete-comment-id'])) { $commentId = intval($_GET['delete-comment-id']); $obComment = new CTreelikeComments; $rsComment = $obComment->GetByID($commentId); if ($arComment = $rsComment->Fetch()) { $obComment->Delete($commentId); $CACHE_MANAGER->ClearByTag("prmedia_treelike_comments_" . $arComment['OBJECT_ID']); } LocalRedirect($APPLICATION->GetCurPageParam("", array("delete-comment-id"))); } $arResult = array(); $rsComment = CTreelikeComments::GetList(array(), array(), intval($arGadgetParams['COUNT'])); $count = CTreelikeComments::GetList(array(), array(), intval($arGadgetParams['COUNT']), true);
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <? $arResult['FANCYBOX'] = false; if (is_array($arResult['PROPERTIES']['MORE_PHOTO']['VALUE'])) { foreach ($arResult['PROPERTIES']['MORE_PHOTO']['VALUE'] as $photo) { $arResult['FANCYBOX'][] = array( 'thumb' => CFile::ResizeImageGet($photo, array('width' => 100, 'height' => 100), BX_RESIZE_IMAGE_PROPORTIONAL, true), 'normal' => CFile::ResizeImageGet($photo, array('width' => 800, 'height' => 800), BX_RESIZE_IMAGE_PROPORTIONAL, true) ); } } CModule::IncludeModule('prmedia.treelikecomments'); $arFilter = array("OBJECT_ID_NUMBER" => $arResult['ID']); $commentsCounter = CTreelikeComments::GetList(array("ID" => "DESC"), $arFilter)->SelectedRowsCount(); $showComments = false; if ($_SESSION['COMMENTS']['ADD'] == 'Y') { $showComments = true; unset($_SESSION['COMMENTS']['ADD']); } ?> <script> $(document).ready(function () { <?if (true === $showComments) : ?> $('.comments-tab').click(); <?endif;?> }); </script> <style> .play-btn {width: 160px; opacity: 0.9; display: block; line-height: 0.7em; padding: 19px 0 19px 0; margin: 0 0 21px 0; background: #bfbfbf url(/src/icons/play48.png) no-repeat left; background-origin: content-box; text-align: center; color: #fff; font-weight: 400; font-size: 24px; font-family: 'Open Sans', sans-serif; text-decoration: none; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px;position: absolute; top: 181px; left: 391px; padding-left: 12px;}
) ); $lAdmin->AddGroupActionTable(Array( "delete"=>GetMessage("MAIN_ADMIN_LIST_DELETE"), // удалить выбранные элементы )); $lAdmin->AddAdminContextMenu($aContext); $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("TC_TITLE")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $get_right_groups = new CTreelikeComments; if(!$get_right_groups->IsModerator()) { echo CAdminMessage::ShowMessage(GetMessage("TC_ERROR_ACCESS")); } else { ?> <form name="form2" method="GET" action="<?echo $APPLICATION->GetCurPage()?>?"> <?$filter->Begin();?> <tr> <td nowrap><?php echo GetMessage("TC_ID"); ?>
if (PrmediaLastCommentsCheckRestrictions($arParams['IBLOCK_RESTRICTIONS'])) { $arRestrictons = $arParams['IBLOCK_RESTRICTIONS']; } $restrictions = implode(',', $arRestrictons); // getlist $order = array( 'ID' => 'DESC' ); $filter = array( 'SITE_ID' => SITE_ID, 'ACTIVATED' => 1, 'IBLOCK_ID' => $restrictions ); $rsComment = CTreelikeComments::GetList($order, $filter, intval($arParams['COUNT'])); while ($arComment = $rsComment->GetNext()) { $element = CIBlockElement::GetByID($arComment['OBJECT_ID']); $arIblockElement = $element->GetNext(); if (!strlen($arComment['LOGIN'])) { $username = $arComment['AUTHOR_NAME']; $isRegistered = 'N'; $profileURL = ''; } else { $username = $arComment['LOGIN']; if (strlen($arParams['PROFILE_URL'])) {
function GetList($aSort = array(), $aFilter = array(), $limit = '', $count = false, $isFullList = false) { global $DB; $groupBy = " GROUP BY prmedia_treelike_comments.ID "; if ($aFilter['OBJECT_ID_UNIQUE'] === true) { unset($aFilter['OBJECT_ID_UNIQUE']); $groupBy = ' GROUP BY OBJECT_ID '; } if (intval($limit) > 0) $limit = " LIMIT 0, " . $limit; else $limit = ""; $arHaving = array(); foreach ($aFilter as $key => $val) { $val = $DB->ForSql($val); $key_res = CTreelikeComments::GetFilterOperation($key); $key = $key_res["FIELD"]; $strNegative = $key_res["NEGATIVE"]; $strOperation = $key_res["OPERATION"]; if ($key == 'PARENT_ID') { if (intval($val) == 0) $arFilter[] = "prmedia_treelike_comments.PARENT_ID IS NULL"; else $arFilter[] = "prmedia_treelike_comments.PARENT_ID=" . intval($val); continue; } if (strlen($val) <= 0) continue; switch (strtoupper($key)) { case "ID": $arFilter[] = "prmedia_treelike_comments.ID = '" . $val . "'"; break; case "PARENT_ID": $arFilter[] = "prmedia_treelike_comments.PARENT_ID = '" . $val . "'"; break; case "OBJECT_ID": $arFilter[] = "b_iblock_element.NAME LIKE '%" . $val . "%'"; break; case "IBLOCK_ID": $arFilter[] = "b_iblock_element.IBLOCK_ID IN (" . $val . ")"; break; case "OBJECT_ID_NUMBER": $arFilter[] = "prmedia_treelike_comments.OBJECT_ID = '" . $val . "'"; break; case "DATE": $arFilter[] = "DATE_FORMAT(prmedia_treelike_comments.DATE, '%d.%m.%Y') = '" . $val . "'"; break; case "COMMENT": $arFilter[] = "prmedia_treelike_comments.COMMENT LIKE '%" . $val . "%'"; break; case "USER_ID": $arFilter[] = "prmedia_treelike_comments.USER_ID='" . $val . "'"; break; case "UP": case "DOWN": if ($strNegative == "Y") $strOperation = "!="; $arHaving[] = $key . " " . $strOperation . " " . $val; break; case "ACTIVATED": $arFilter[] = "ACTIVATED = '" . $val . "'"; break; case "AUTHOR_NAME": $arFilter[] = "(prmedia_treelike_comments.AUTHOR_NAME LIKE '%" . $val . "%' OR b_user.LOGIN LIKE '%" . $val . "%' OR b_user.NAME LIKE '%" . $val . "%' OR b_user.LAST_NAME LIKE '%" . $val . "%')"; break; case "IP": $arFilter[] = "prmedia_treelike_comments.REMOTE_ADDR = '" . $val . "'"; break; case "EMAIL": $arFilter[] = "(prmedia_treelike_comments.EMAIL LIKE '%" . $val . "%' OR b_user.EMAIL LIKE '%" . $val . "%')"; break; case "SITE_ID": $arFilter[] = "SITE_ID = '" . $val . "'"; break; case "DATE_MODIFY": $arFilter[] = "DATE_FORMAT(prmedia_treelike_comments.DATE_MODIFY, '%d.%m.%Y') = '" . $val . "'"; break; case "REMOTE_ADDR": $arFilter[] = "REMOTE_ADDR = '" . $val . "'"; break; } } $arOrder = array(); foreach ($aSort as $key => $val) { $ord = (strtoupper($val) <> "ASC" ? "DESC" : "ASC"); switch (strtoupper($key)) { case "ID": $arOrder[] = "prmedia_treelike_comments.ID " . $ord; break; case "PARENT_ID": $arOrder[] = "prmedia_treelike_comments.PARENT_ID " . $ord; break; case "OBJECT_ID": $arOrder[] = "b_iblock_element.NAME " . $ord; break; case "DATE": $arOrder[] = "prmedia_treelike_comments.DATE " . $ord; break; case "COMMENT": $arOrder[] = "prmedia_treelike_comments.COMMENT " . $ord; break; case "USER_ID": $arOrder[] = "prmedia_treelike_comments.USER_ID " . $ord; break; case "ACTIVATED": $arOrder[] = "prmedia_treelike_comments.ACTIVATED " . $ord; break; case "AUTHOR_NAME": $arOrder[] = "prmedia_treelike_comments.AUTHOR_NAME " . $ord; break; case "REMOTE_ADDR": $arOrder[] = "prmedia_treelike_comments.REMOTE_ADDR " . $ord; break; case "EMAIL": $arOrder[] = "prmedia_treelike_comments.EMAIL " . $ord; break; case "SITE_ID": $arOrder[] = "prmedia_treelike_comments.SITE_ID " . $ord; break; case "DATE_MODIFY": $arOrder[] = "prmedia_treelike_comments.DATE_MODIFY " . $ord; break; } } if (count($arOrder) == 0) $arOrder[] = "prmedia_treelike_comments.ID DESC"; $sOrder = "\nORDER BY " . implode(", ", $arOrder); if (count($arFilter) == 0) $sFilter = ""; else $sFilter = "\nWHERE " . implode("\nAND ", $arFilter); if (count($arHaving) == 0) $arHaving = ""; else $arHaving = "\nHAVING " . implode("\nAND ", $arHaving); if (!$count) { if (!$isFullList) { $strSql = " SELECT prmedia_treelike_comments.ID, prmedia_treelike_comments.PARENT_ID, prmedia_treelike_comments.OBJECT_ID, DATE_FORMAT(prmedia_treelike_comments.DATE, '%d.%m.%Y %H:%i') AS NEW_DATE, prmedia_treelike_comments.COMMENT, DATE_FORMAT(prmedia_treelike_comments.DATE_MODIFY, '%d.%m.%Y %H:%i') AS DATE_MODIFY, prmedia_treelike_comments.USER_ID, prmedia_treelike_comments.ACTIVATED, prmedia_treelike_comments.AUTHOR_NAME, prmedia_treelike_comments.REMOTE_ADDR, prmedia_treelike_comments.SITE_ID, b_iblock_element.NAME, b_iblock_element.IBLOCK_ID, b_user.LOGIN, b_user.EMAIL, b_user.NAME, b_user.LAST_NAME, b_user.PERSONAL_PHOTO FROM prmedia_treelike_comments LEFT JOIN b_iblock_element ON OBJECT_ID = b_iblock_element.ID LEFT JOIN b_user ON USER_ID = b_user.ID " . $sFilter . " " . $groupBy . $arHaving . $sOrder . $limit; } else { $strSql = " SELECT prmedia_treelike_comments.ID, prmedia_treelike_comments.PARENT_ID, prmedia_treelike_comments.OBJECT_ID, DATE_FORMAT(prmedia_treelike_comments.DATE, '%d.%m.%Y %H:%i') AS NEW_DATE, prmedia_treelike_comments.COMMENT, DATE_FORMAT(prmedia_treelike_comments.DATE_MODIFY, '%d.%m.%Y %H:%i') AS DATE_MODIFY, prmedia_treelike_comments.USER_ID, prmedia_treelike_comments.ACTIVATED, prmedia_treelike_comments.AUTHOR_NAME, prmedia_treelike_comments.REMOTE_ADDR, prmedia_treelike_comments.SITE_ID, b_iblock_element.NAME, b_user.LOGIN, b_user.EMAIL, b_user.NAME, b_user.LAST_NAME, b_user.PERSONAL_PHOTO FROM prmedia_treelike_comments LEFT JOIN b_iblock_element ON OBJECT_ID = b_iblock_element.ID LEFT JOIN b_user ON USER_ID = b_user.ID " . $sFilter . " " . $groupBy . $arHaving . $sOrder . $limit; } return $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); } else { $strSql = " SELECT COUNT(prmedia_treelike_comments.ID) as C FROM prmedia_treelike_comments LEFT JOIN b_iblock_element ON OBJECT_ID = b_iblock_element.ID LEFT JOIN b_user ON USER_ID = b_user.ID " . $sFilter . $sOrder . $limit; $res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); $res_cnt = $res->Fetch(); return IntVal($res_cnt["C"]); } }
$arFilter = array( "OBJECT_ID_NUMBER" => $arParams["OBJECT_ID"], "SITE_ID" => SITE_ID, ); $resComm = CTreelikeComments::GetList(array(), $arFilter); while($arComm = $resComm->GetNext()): $arIDs[] = $arComm["ID"]; $arItems[$arComm["ID"]] = $arComm; $arItems[$arComm["ID"]]["COMMENT"] = $arComm["~COMMENT"]; endwhile; // Count votes if(!empty($arIDs)) { $resVoteIDs = CTreelikeComments::GetVotedIDs($arIDs); $allbestCommentsCount = 0; // corresponding to the condition while($arIDs = $resVoteIDs->GetNext()): if($arIDs["VOTE_TYPE"] == "UP") { if($arIDs["COUNT"] > 0) $arItems[$arIDs["COMMENT_ID"]]["VoteUp"] = $arIDs["COUNT"]; else $arItems[$arIDs["COMMENT_ID"]]["VoteUp"] = 0; } if($arIDs["VOTE_TYPE"] == "DOWN") { if($arIDs["COUNT"] > 0) $arItems[$arIDs["COMMENT_ID"]]["VoteDown"] = $arIDs["COUNT"]; else