Преглед изворни кода

Merge branch 'master' of https://github.com/unaio/una

AntonLV пре 6 година
родитељ
комит
ee9a156b76

+ 11 - 0
inc/classes/BxDolCmts.php

@@ -304,6 +304,17 @@ class BxDolCmts extends BxDolFactory implements iBxDolReplaceable, iBxDolContent
         $o = new $sClassName($sSys, $iId, $iInit, $oTemplate);
         $o = new $sClassName($sSys, $iId, $iInit, $oTemplate);
         return ($GLOBALS['bxDolClasses']['BxDolCmts!' . $sSys . $iId] = $o);
         return ($GLOBALS['bxDolClasses']['BxDolCmts!' . $sSys . $iId] = $o);
     }
     }
+    
+    /**
+     * get comments object instanse
+     * @param $iUniqId unique comment id
+     * @return null on error, or ready to use class instance
+     */
+    public static function getObjectInstanceByUniqId($iUniqId, $iInit = true, $oTemplate = false)
+    {
+        $aData = BxDolCmtsQuery::getCommentByUniq($iUniqId);
+        return self::getObjectInstance($aData['system_name'], $aData['cmt_object_id']);
+    }
 
 
     public static function &getSystems ()
     public static function &getSystems ()
     {
     {

+ 18 - 0
inc/classes/BxDolCmtsQuery.php

@@ -383,6 +383,24 @@ class BxDolCmtsQuery extends BxDolDb
             LIMIT 1", $this->_oMain->getSystemId(), $iId, $iCmtId);
             LIMIT 1", $this->_oMain->getSystemId(), $iId, $iCmtId);
         return $this->getRow($sQuery);
         return $this->getRow($sQuery);
     }
     }
+    
+    static function getCommentByUniq ($iUnicId)
+    {
+        $oDb = BxDolDb::getInstance();
+        $sQuery = $oDb->prepare("SELECT `table_ids`.`cmt_id`, table_obj.`Name` AS `system_name`, table_obj.`Table` AS `table_name` 
+            FROM `" . BxDolCmts::$sTableIds . "` as `table_ids`  
+            INNER JOIN  `" . BxDolCmts::$sTableSystems . "` as `table_obj` ON  `table_ids`.`system_id` = `table_obj`.`ID`
+            WHERE `table_ids`.`id` = ?
+            LIMIT 1", $iUnicId);
+        $aRow = $oDb->getRow($sQuery);
+        
+        if ($aRow){
+            $sQuery = $oDb->prepare("SELECT `cmt_object_id` FROM `" . $aRow['table_name'] . "` WHERE `cmt_id` = ? LIMIT 1", $aRow['cmt_id']);
+            $aRow['cmt_object_id'] = $oDb->getOne($sQuery);
+        }
+        
+        return $aRow;
+    }
 
 
     function getCommentSimple ($iId, $iCmtId)
     function getCommentSimple ($iId, $iCmtId)
     {
     {

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

@@ -1846,6 +1846,7 @@
   <string name="_sys_audit_action_set_status_disapprove"><![CDATA[Disapproved]]></string>
   <string name="_sys_audit_action_set_status_disapprove"><![CDATA[Disapproved]]></string>
   <string name="_sys_audit_action_set_status_suspended"><![CDATA[Suspended]]></string>
   <string name="_sys_audit_action_set_status_suspended"><![CDATA[Suspended]]></string>
   <string name="_sys_audit_action_report"><![CDATA[Reported]]></string>
   <string name="_sys_audit_action_report"><![CDATA[Reported]]></string>
+  <string name="_sys_audit_action_report_comment"><![CDATA[Comment Reported]]></string>
   <string name="_sys_audit_action_lock"><![CDATA[Locked]]></string>
   <string name="_sys_audit_action_lock"><![CDATA[Locked]]></string>
   <string name="_sys_audit_action_unlock"><![CDATA[Unlocked]]></string>
   <string name="_sys_audit_action_unlock"><![CDATA[Unlocked]]></string>
   <string name="_sys_audit_action_stick"><![CDATA[Sticked]]></string>
   <string name="_sys_audit_action_stick"><![CDATA[Sticked]]></string>

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

@@ -1830,6 +1830,7 @@
   <string name="_sys_audit_action_set_status_disapprove"><![CDATA[Статус: не одобрено]]></string>
   <string name="_sys_audit_action_set_status_disapprove"><![CDATA[Статус: не одобрено]]></string>
   <string name="_sys_audit_action_set_status_suspended"><![CDATA[Статус: приостановлено]]></string>
   <string name="_sys_audit_action_set_status_suspended"><![CDATA[Статус: приостановлено]]></string>
   <string name="_sys_audit_action_report"><![CDATA[Новая жалоба]]></string>
   <string name="_sys_audit_action_report"><![CDATA[Новая жалоба]]></string>
+  <string name="_sys_audit_action_report_comment"><![CDATA[Новая жалоба на комментарий]]></string>
   <string name="_sys_audit_action_lock"><![CDATA[Заблокировно]]></string>
   <string name="_sys_audit_action_lock"><![CDATA[Заблокировно]]></string>
   <string name="_sys_audit_action_unlock"><![CDATA[Разблокировано]]></string>
   <string name="_sys_audit_action_unlock"><![CDATA[Разблокировано]]></string>
   <string name="_sys_audit_action_stick"><![CDATA[Приклеено]]></string>
   <string name="_sys_audit_action_stick"><![CDATA[Приклеено]]></string>

+ 33 - 5
template/scripts/BxBaseReport.php

@@ -285,8 +285,14 @@ class BxBaseReport extends BxDolReport
                 bx_alert('report', 'do', $iId, $iAuthorId, array('object_system' => $this->_sSystem, 'object_id' => $iObjectId, 'object_author_id' => $iObjectAuthorId, 'type' => $sType, 'text' => $sText));
                 bx_alert('report', 'do', $iId, $iAuthorId, array('object_system' => $this->_sSystem, 'object_id' => $iObjectId, 'object_author_id' => $iObjectAuthorId, 'type' => $sType, 'text' => $sText));
 
 
                 $mixedParams = $this->_prepareAuditParams($iObjectId, array('type' => $sType, 'text' => $sText));
                 $mixedParams = $this->_prepareAuditParams($iObjectId, array('type' => $sType, 'text' => $sText));
-                if($mixedParams)
-                    bx_audit($iObjectId, $this->_sSystem, '_sys_audit_action_report', $mixedParams);
+                
+                if($mixedParams){
+                    $sActionName = $mixedParams['action_name'];
+                    $iAuditObjectId = $mixedParams['object_id'];
+                    unset($mixedParams['action_name']);
+                    unset($mixedParams['object_id']);
+                    bx_audit($iAuditObjectId, $this->_sSystem, $sActionName, $mixedParams);
+                }
 
 
                 $aReport = $this->_oQuery->getReport($iObjectId);
                 $aReport = $this->_oQuery->getReport($iObjectId);
                 return array(
                 return array(
@@ -351,8 +357,26 @@ class BxBaseReport extends BxDolReport
     private function _prepareAuditParams($iObjectId, $aData)
     private function _prepareAuditParams($iObjectId, $aData)
     {
     {
         $sModule = $this->_sSystem;
         $sModule = $this->_sSystem;
-        $oModule = BxDolModule::getInstance($sModule);
+        $sKeyObjectContentInfo = 'OBJECT_CONTENT_INFO';
+        $sActionName = '_sys_audit_action_report';
+        
+        if ($this->_sSystem == 'sys_cmts'){
+            $aCommentData = BxDolCmtsQuery::getCommentByUniq($iObjectId);
+            $oComment = BxDolCmts::getObjectInstance($aCommentData['system_name'], $aCommentData['cmt_object_id']);
+            $aComment = $oComment->getCommentSimple($aCommentData['cmt_id']);
+            $aSystem = $oComment->getSystemInfo();
+            
+            $sModule = $aSystem['module'];
+            $aData['comment_id'] = $aCommentData['cmt_id'];
+            $aData['comment_author_id'] = $aComment['cmt_author_id'];
+            $aData['comment_text'] = $aComment['cmt_text'];
+            $iObjectId = $aCommentData['cmt_object_id'];
+            
+            $sKeyObjectContentInfo = 'OBJECT_CMTS_CONTENT_INFO';
+            $sActionName = '_sys_audit_action_report_comment';
+        }
         
         
+        $oModule = BxDolModule::getInstance($sModule);
         if ($oModule){
         if ($oModule){
             $CNF = $oModule->_oConfig->CNF;
             $CNF = $oModule->_oConfig->CNF;
 
 
@@ -360,11 +384,15 @@ class BxBaseReport extends BxDolReport
         
         
             $AuditParams = array(
             $AuditParams = array(
                 'content_title' => isset($CNF['FIELD_TITLE'])  ? $aContentInfo[$CNF['FIELD_TITLE']] : '',
                 'content_title' => isset($CNF['FIELD_TITLE'])  ? $aContentInfo[$CNF['FIELD_TITLE']] : '',
-                'content_info_object' =>  isset($CNF['OBJECT_CONTENT_INFO']) ? $CNF['OBJECT_CONTENT_INFO'] : '',
-                'data' => $aData 
+                'content_info_object' =>  isset($CNF[$sKeyObjectContentInfo]) ? $CNF[$sKeyObjectContentInfo] : '',
+                'data' => $aData,
+                'action_name' => $sActionName, 
+                'object_id' => $iObjectId 
             );
             );
+            
             return $AuditParams;
             return $AuditParams;
         }
         }
+        
         return false;
         return false;
     }
     }
 }
 }