AntonLV 8 سال پیش
والد
کامیت
6753c74825

+ 7 - 0
inc/classes/BxDolCmts.php

@@ -814,6 +814,13 @@ class BxDolCmts extends BxDolFactory implements iBxDolReplaceable, iBxDolContent
         return $this->checkActionErrorMsg('comments remove own');
     }
 
+    public function isMoreAllowed ($aCmt, $isPerformAction = false)
+    {
+        $oMenuManage = BxDolMenu::getObjectInstance($this->_sMenuObjManage);
+	    $oMenuManage->setCmtsData($this, $aCmt['cmt_id']);
+    	return $oMenuManage->isVisible();
+    }
+
     /**
      * Actions functions
      */

+ 0 - 14
inc/js/classes/BxDolCmts.js

@@ -354,20 +354,6 @@ BxDolCmts.prototype.toggleReply = function(e, iCmtParentId)
 	});
 };
 
-BxDolCmts.prototype.toggleManagePopup = function(oLink, iCmtId) {
-	var oPopup = $('#' + this._sSystem + '-manage-' + iCmtId);
-	if(oPopup.is(':visible')) {
-		oPopup.dolPopupHide();
-		return;
-	}
-
-	oPopup.dolPopup({
-		pointer:{
-			el:$(oLink)
-		}
-	});
-};
-
 BxDolCmts.prototype.goTo = function(oLink, sGoToId, sBlinkIds, onLoad)
 {
 	$(oLink).parents('.bx-popup-applied:first:visible').dolPopupHide();

+ 5 - 4
install/sql/system.sql

@@ -3596,10 +3596,11 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('sys_cmts_item_manage', 'system', 'item-delete', '_sys_menu_item_title_system_cmts_item_delete', '_sys_menu_item_title_cmts_item_delete', 'javascript:void(0)', 'javascript:{js_object}.cmtRemove(this, {content_id})', '_self', 'remove', '', 2147483647, 1, 0, 0);
 
 -- comment actions menu
-INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `addon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `editable`, `order`) VALUES 
-('sys_cmts_item_actions', 'system', 'item-vote', '_sys_menu_item_title_system_cmts_item_vote', '_sys_menu_item_title_cmts_item_vote', 'javascript:void(0)', '', '', '', '', '', 2147483647, 1, 0, 1, 1),
-('sys_cmts_item_actions', 'system', 'item-score', '_sys_menu_item_title_system_cmts_item_score', '_sys_menu_item_title_cmts_item_score', 'javascript:void(0)', '', '', '', '', '', 2147483647, 0, 0, 1, 2),
-('sys_cmts_item_actions', 'system', 'item-reply', '_sys_menu_item_title_system_cmts_item_reply', '_sys_menu_item_title_cmts_item_reply', 'javascript:void(0)', 'javascript:{reply_onclick}', '_self', 'reply', '', '', 2147483647, 1, 0, 1, 3);
+INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `addon`, `submenu_object`, `submenu_popup`, `visible_for_levels`, `active`, `copyable`, `editable`, `order`) VALUES 
+('sys_cmts_item_actions', 'system', 'item-vote', '_sys_menu_item_title_system_cmts_item_vote', '_sys_menu_item_title_cmts_item_vote', 'javascript:void(0)', '', '', '', '', '', 0, 2147483647, 1, 0, 1, 1),
+('sys_cmts_item_actions', 'system', 'item-score', '_sys_menu_item_title_system_cmts_item_score', '_sys_menu_item_title_cmts_item_score', 'javascript:void(0)', '', '', '', '', '', 0, 2147483647, 0, 0, 1, 2),
+('sys_cmts_item_actions', 'system', 'item-reply', '_sys_menu_item_title_system_cmts_item_reply', '_sys_menu_item_title_cmts_item_reply', 'javascript:void(0)', 'javascript:{reply_onclick}', '_self', 'reply', '', '', 0, 2147483647, 1, 0, 1, 3),
+('sys_cmts_item_actions', 'system', 'item-more', '_sys_menu_item_title_system_cmts_item_more', '_sys_menu_item_title_cmts_item_more', 'javascript:void(0)', 'bx_menu_popup(''sys_cmts_item_manage'', this, {''id'':''sys_cmts_item_manage_{cmt_system}_{cmt_id}''}, {cmt_system:''{cmt_system}'', cmt_object_id:{cmt_object_id}, cmt_id:{cmt_id}});', '', 'ellipsis-h', '', 'sys_cmts_item_manage', 1, 2147483647, 1, 0, 1, 4);
 
 -- social sharing menu
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES

+ 3 - 1
modules/boonex/english/data/langs/system/en.xml

@@ -2157,12 +2157,13 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_item_title_account_settings_pwd"><![CDATA[Password]]></string>
 	<string name="_sys_menu_item_title_add_content"><![CDATA[Add...]]></string>
 	<string name="_sys_menu_item_title_cart"><![CDATA[Shopping Cart]]></string>
-  <string name="_sys_menu_item_title_cmts_administration"><![CDATA[Manage Сomments]]></string>
+	<string name="_sys_menu_item_title_cmts_administration"><![CDATA[Manage Сomments]]></string>
 	<string name="_sys_menu_item_title_cmts_item_delete"><![CDATA[Delete]]></string>
 	<string name="_sys_menu_item_title_cmts_item_edit"><![CDATA[Edit]]></string>
 	<string name="_sys_menu_item_title_cmts_item_reply"><![CDATA[]]></string>
 	<string name="_sys_menu_item_title_cmts_item_score"><![CDATA[]]></string>
 	<string name="_sys_menu_item_title_cmts_item_vote"><![CDATA[]]></string>
+	<string name="_sys_menu_item_title_cmts_item_more"><![CDATA[]]></string>
 	<string name="_sys_menu_item_title_dashboard"><![CDATA[Dash]]></string>
 	<string name="_sys_menu_item_title_home"><![CDATA[Home]]></string>
 	<string name="_sys_menu_item_title_logout"><![CDATA[Sign out]]></string>
@@ -2224,6 +2225,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_item_title_system_cmts_item_report"><![CDATA[Report]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_score"><![CDATA[Score]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_vote"><![CDATA[Plus]]></string>
+	<string name="_sys_menu_item_title_system_cmts_item_more"><![CDATA[More]]></string>
 	<string name="_sys_menu_item_title_system_dashboard"><![CDATA[Dashboard]]></string>
 	<string name="_sys_menu_item_title_system_home"><![CDATA[Home]]></string>
 	<string name="_sys_menu_item_title_system_login"><![CDATA[Log in]]></string>

+ 3 - 1
modules/boonex/russian/data/langs/system/ru.xml

@@ -2156,12 +2156,13 @@
 	<string name="_sys_menu_item_title_account_settings_pwd"><![CDATA[Пароль]]></string>
 	<string name="_sys_menu_item_title_add_content"><![CDATA[Добавить...]]></string>
 	<string name="_sys_menu_item_title_cart"><![CDATA[Корзина]]></string>
-  <string name="_sys_menu_item_title_cmts_administration"><![CDATA[Управление комментариями]]></string>
+	<string name="_sys_menu_item_title_cmts_administration"><![CDATA[Управление комментариями]]></string>
 	<string name="_sys_menu_item_title_cmts_item_delete"><![CDATA[Удалить]]></string>
 	<string name="_sys_menu_item_title_cmts_item_edit"><![CDATA[Редактировать]]></string>
 	<string name="_sys_menu_item_title_cmts_item_reply"><![CDATA[]]></string>
 	<string name="_sys_menu_item_title_cmts_item_score"><![CDATA[]]></string>
 	<string name="_sys_menu_item_title_cmts_item_vote"><![CDATA[]]></string>
+	<string name="_sys_menu_item_title_cmts_item_more"><![CDATA[]]></string>
 	<string name="_sys_menu_item_title_dashboard"><![CDATA[Панель]]></string>
 	<string name="_sys_menu_item_title_home"><![CDATA[Домой]]></string>
 	<string name="_sys_menu_item_title_logout"><![CDATA[Выйти]]></string>
@@ -2223,6 +2224,7 @@
 	<string name="_sys_menu_item_title_system_cmts_item_report"><![CDATA[Пожаловаться]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_score"><![CDATA[Голосовать (За/Против)]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_vote"><![CDATA[Голосовать (Нравится)]]></string>
+	<string name="_sys_menu_item_title_system_cmts_item_more"><![CDATA[Ещё]]></string>
 	<string name="_sys_menu_item_title_system_dashboard"><![CDATA[Панель]]></string>
 	<string name="_sys_menu_item_title_system_home"><![CDATA[Домой]]></string>
 	<string name="_sys_menu_item_title_system_login"><![CDATA[Вход]]></string>

+ 1 - 9
template/comment_actions.html

@@ -1,9 +1 @@
-<div class="__style_prefix__-actions bx-clearfix">
-	__menu_actions__
-	<bx_if:show_menu_manage>
-		<div class="__style_prefix__-comment-manage-link bx-def-margin-thd-topbottom">
-			<a class="__style_prefix__-comment-manage" href="javascript:void(0)" onclick="__js_object__.toggleManagePopup(this, __id__); return false;" title="<bx_text_attribute:_Manage />"><i class="sys-icon ellipsis-h"></i></a>
-		</div>
-		__popup_text__
-	</bx_if:show_menu_manage>
-</div>
+<div class="__style_prefix__-actions bx-clearfix">__menu_actions__</div>

+ 0 - 1
template/comment_manage.html

@@ -1 +0,0 @@
-<div class="__style_prefix__-comment-manage bx-def-padding">__content__</div>

+ 1 - 36
template/scripts/BxBaseCmts.php

@@ -436,31 +436,12 @@ class BxBaseCmts extends BxDolCmts
     	$bViewOnly = isset($aDp['view_only']) && $aDp['view_only'] === true;
     	$bDynamicMode = isset($aDp['dynamic_mode']) && $aDp['dynamic_mode'] === true;
 
-        $bMenuManage = false;
-        $sMenuActions = $sMenuManage = '';
-
+        $sMenuActions = '';
 		if(!$bViewOnly) {
-	        //--- Actions Menu
 	        $oMenuActions = BxDolMenu::getObjectInstance($this->_sMenuObjActions);
 	        $oMenuActions->setCmtsData($this, $aCmt['cmt_id']);
 	        $oMenuActions->setDynamicMode($bDynamicMode);
 	        $sMenuActions = $oMenuActions->getCode();
-
-	        //--- Manage Menu
-	        $oMenuManage = BxDolMenu::getObjectInstance($this->_sMenuObjManage);
-	        $oMenuManage->setCmtsData($this, $aCmt['cmt_id']);
-	        $oMenuManage->setDynamicMode($bDynamicMode);
-
-	        $sMenuManage = $oMenuManage->getCode();
-	        $bMenuManage = !empty($sMenuManage);
-	        if($bMenuManage) {
-	            $sMenuManage = $this->_oTemplate->parseHtmlByName('comment_manage.html', array(
-	                'style_prefix' => $this->_sStylePrefix,
-	                'content' => $sMenuManage
-	            ));
-	
-	            $sMenuManage = BxTemplFunctions::getInstance()->transBox($this->_sSystem . '-manage-' . $aCmt['cmt_id'], $sMenuManage, true);
-	        }
 		}
 
         return $this->_oTemplate->parseHtmlByName('comment_actions.html', array(
@@ -468,22 +449,6 @@ class BxBaseCmts extends BxDolCmts
             'js_object' => $this->_sJsObjName,
             'style_prefix' => $this->_sStylePrefix,
             'menu_actions' => $sMenuActions,
-/*
-            'bx_if:hide_rate_count' => array(
-                'condition' => (int)$aCmt['cmt_rate'] <= 0,
-                'content' => array()
-            ),
-            'points' => _t(in_array($aCmt['cmt_rate'], array(-1, 0, 1)) ? '_N_point' : '_N_points', $aCmt['cmt_rate']),
-*/
-            'bx_if:show_menu_manage' => array(
-                'condition' => $bMenuManage,
-                'content' => array(
-                    'js_object' => $this->_sJsObjName,
-                    'style_prefix' => $this->_sStylePrefix,
-                    'id' => $aCmt['cmt_id'],
-                    'popup_text' => $sMenuManage
-                )
-            )
         ));
     }
 

+ 8 - 1
template/scripts/BxBaseCmtsMenuActions.php

@@ -37,7 +37,8 @@ class BxBaseCmtsMenuActions extends BxTemplMenuCustom
         $this->addMarkers(array(
             'js_object' => $sJsObject,
             'cmt_system' => $this->_oCmts->getSystemName(),
-            'cmt_id' => $this->_oCmts->getId(),
+            'cmt_object_id' => $this->_oCmts->getId(),
+        	'cmt_id' => $iCmtId,
             'content_id' => $iCmtId,
             'reply_onclick' => $sJsObject . '.toggleReply(this, ' . $iCmtId . ')'
         ));
@@ -128,6 +129,12 @@ class BxBaseCmtsMenuActions extends BxTemplMenuCustom
                 if(!empty($this->_aCmt))
                     $aCheckFuncParams = array($this->_aCmt);
                 break;
+
+            case 'item-more':
+                $sCheckFuncName = 'isMoreAllowed';
+                if(!empty($this->_aCmt))
+                    $aCheckFuncParams = array($this->_aCmt);
+                break;
         }
 
         if(!$sCheckFuncName || !method_exists($this->_oCmts, $sCheckFuncName))

+ 7 - 0
template/scripts/BxBaseCmtsMenuManage.php

@@ -17,6 +17,13 @@ class BxBaseCmtsMenuManage extends BxTemplCmtsMenuActions
     {
         parent::__construct ($aObject, $oTemplate);
 
+        if(bx_get('cmt_system') !== false && bx_get('cmt_object_id') !== false && bx_get('cmt_id') !== false) {
+            $oCmts = BxTemplCmts::getObjectInstance(bx_process_input(bx_get('cmt_system')), (int)bx_get('cmt_object_id'));
+            if($oCmts)
+                $this->setCmtsData($oCmts, (int)bx_get('cmt_id'));
+        }
+
+        $this->_bDynamicMode = true;
         $this->_bShowTitles = true;
     }
 }