AntonLV 6 лет назад
Родитель
Сommit
0971a55c16
2 измененных файлов с 23 добавлено и 3 удалено
  1. 9 1
      inc/classes/BxDolObject.php
  2. 14 2
      inc/classes/BxDolObjectQuery.php

+ 9 - 1
inc/classes/BxDolObject.php

@@ -164,7 +164,7 @@ class BxDolObject extends BxDolFactory implements iBxDolReplaceable
         );
     }
     
-	public function getSqlParts($sMainTable, $sMainField)
+    public function getSqlParts($sMainTable, $sMainField)
     {
         if(!$this->isEnabled())
             return array();
@@ -180,6 +180,14 @@ class BxDolObject extends BxDolFactory implements iBxDolReplaceable
         return $this->_oQuery->getSqlPartsTrack($sMainTable, $sMainField, $iAuthorId);
     }
 
+    public function getSqlPartsTrackAuthor($sMainTable, $sMainField, $iObjectId = 0)
+    {
+        if(!$this->isEnabled())
+            return array();
+
+        return $this->_oQuery->getSqlPartsTrackAuthor($sMainTable, $sMainField, $iObjectId);
+    }
+
     public function addMarkers($aMarkers)
     {
         if(empty($aMarkers) || !is_array($aMarkers))

+ 14 - 2
inc/classes/BxDolObjectQuery.php

@@ -67,12 +67,24 @@ class BxDolObjectQuery extends BxDolDb
             return array();
 
         return array (
-            'fields' => ", `{$this->_sTableTrack}`.`author_id` as `favorer_id` ",
-            'where' => $this->prepareAsString(" AND `{$this->_sTableTrack}`.`author_id` = ?", $iAuthorId),
+            'fields' => ", `{$this->_sTableTrack}`.`{$this->_sTableTrackFieldAuthor}` as `{$this->_sTableTrackFieldAuthor}` ",
+            'where' => $this->prepareAsString(" AND `{$this->_sTableTrack}`.`{$this->_sTableTrackFieldAuthor}` = ?", $iAuthorId),
             'join' => " LEFT JOIN `{$this->_sTableTrack}` ON (`{$this->_sTableTrack}`.`object_id` = `{$sMainTable}`.`{$sMainField}`) ",
         );
     }
 
+    public function getSqlPartsTrackAuthor($sMainTable, $sMainField, $iObjectId = 0)
+    {
+        if(empty($this->_sTableTrack) || empty($sMainTable) || empty($sMainField))
+            return array();
+
+        return array (
+            'fields' => ", `{$this->_sTableTrack}`.`object_id` as `object_id` ",
+            'where' => $this->prepareAsString(" AND `{$this->_sTableTrack}`.`object_id` = ?", $iObjectId),
+            'join' => " LEFT JOIN `{$this->_sTableTrack}` ON (`{$this->_sTableTrack}`.`{$this->_sTableTrackFieldAuthor}` = `{$sMainTable}`.`{$sMainField}`) ",
+        );
+    }
+
     public function isPerformed($iObjectId, $iAuthorId)
     {
         $sQuery = $this->prepare("SELECT `object_id` FROM `{$this->_sTableTrack}` WHERE `object_id` = ? AND `author_id` = ? LIMIT 1", $iObjectId, $iAuthorId);