|
|
@@ -85,64 +85,55 @@ class BxNtfsDb extends BxBaseModNotificationsDb
|
|
|
if(!empty($aParams['new']) && !empty($aParams['owner_id']))
|
|
|
$sWhereClause .= $this->prepareAsString("AND `{$this->_sTable}`.`id`>? ", $this->getLastRead((int)$aParams['owner_id']));
|
|
|
|
|
|
- //--- Apply privacy filter
|
|
|
- $aPrivacy = array(BX_DOL_PG_ALL);
|
|
|
- if(isLogged())
|
|
|
- $aPrivacy[] = BX_DOL_PG_MEMBERS;
|
|
|
-
|
|
|
- $oPrivacy = BxDolPrivacy::getObjectInstance($this->_oConfig->getObject('privacy_view'));
|
|
|
- $aQueryParts = $oPrivacy->getContentByGroupAsSQLPart($aPrivacy);
|
|
|
- $sWhereClause .= $aQueryParts['where'] . " ";
|
|
|
-
|
|
|
//--- Check type
|
|
|
if(!empty($aParams['owner_id']))
|
|
|
- switch($aParams['type']) {
|
|
|
- case BX_BASE_MOD_NTFS_TYPE_OWNER:
|
|
|
- $sWhereClause .= $this->prepareAsString("AND `{$this->_sTable}`.`owner_id`=? ", $aParams['owner_id']);
|
|
|
+ switch($aParams['type']) {
|
|
|
+ case BX_BASE_MOD_NTFS_TYPE_OWNER:
|
|
|
+ $sWhereClause .= $this->prepareAsString("AND `{$this->_sTable}`.`owner_id`=? ", $aParams['owner_id']);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case BX_BASE_MOD_NTFS_TYPE_OBJECT_OWNER:
|
|
|
+ $sWhereClause .= $this->prepareAsString("AND `{$this->_sTable}`.`owner_id`<>`{$this->_sTable}`.`object_owner_id` AND `{$this->_sTable}`.`object_owner_id`=? ", $aParams['owner_id']);
|
|
|
+ $sWhereClause .= $this->prepareAsString("AND `{$this->_sTableSettings}`.`type`=? AND `{$this->_sTableSettings}`.`active`='1' AND (ISNULL(`{$this->_sTableSettings2Users}`.`active`) OR `{$this->_sTableSettings2Users}`.`active`='1') ", BX_NTFS_STYPE_PERSONAL);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case BX_BASE_MOD_NTFS_TYPE_CONNECTIONS:
|
|
|
+ $oConnection = BxDolConnection::getObjectInstance($this->_oConfig->getObject('conn_subscriptions'));
|
|
|
+ $aQueryParts = $oConnection->getConnectedContentAsSQLParts($this->_sPrefix . "events", 'owner_id', $aParams['owner_id']);
|
|
|
+ if(empty($aQueryParts) || !is_array($aQueryParts) || empty($aQueryParts['join']))
|
|
|
break;
|
|
|
|
|
|
- case BX_BASE_MOD_NTFS_TYPE_OBJECT_OWNER:
|
|
|
- $sWhereClause .= $this->prepareAsString("AND `{$this->_sTable}`.`owner_id`<>`{$this->_sTable}`.`object_owner_id` AND `{$this->_sTable}`.`object_owner_id`=? ", $aParams['owner_id']);
|
|
|
- $this->prepareAsString("AND `{$this->_sTableSettings}`.`type`=? AND `{$this->_sTableSettings}`.`active`='1' AND (ISNULL(`{$this->_sTableSettings2Users}`.`active`) OR `{$this->_sTableSettings2Users}`.`active`='1') ", BX_NTFS_STYPE_PERSONAL);
|
|
|
- break;
|
|
|
+ $sJoinClause .= " LEFT JOIN `sys_profiles` AS `tsp` ON `{$this->_sTable}`.`owner_id`=`tsp`.`id` " . $aQueryParts['join'];
|
|
|
|
|
|
- case BX_BASE_MOD_NTFS_TYPE_CONNECTIONS:
|
|
|
- $oConnection = BxDolConnection::getObjectInstance($this->_oConfig->getObject('conn_subscriptions'));
|
|
|
- $aQueryParts = $oConnection->getConnectedContentAsSQLParts($this->_sPrefix . "events", 'owner_id', $aParams['owner_id']);
|
|
|
- if(empty($aQueryParts) || !is_array($aQueryParts) || empty($aQueryParts['join']))
|
|
|
- break;
|
|
|
+ if(!empty($aQueryParts['fields']['added']))
|
|
|
+ $sWhereClause .= "AND `{$this->_sTable}`.`date` > " . $aQueryParts['fields']['added'];
|
|
|
|
|
|
- $sJoinClause .= " LEFT JOIN `sys_profiles` AS `tsp` ON `{$this->_sTable}`.`owner_id`=`tsp`.`id` " . $aQueryParts['join'];
|
|
|
+ list($aModulesProfiles, $aModulesContexts) = $this->_oConfig->getProfileBasedModules();
|
|
|
+ $sWhereClause .= $this->prepareAsString("AND ((`{$this->_sTableSettings}`.`type`=? AND `tsp`.`type` IN (" . $this->implode_escape($aModulesProfiles) . ")) || (`{$this->_sTableSettings}`.`type`=? AND `tsp`.`type` IN (" . $this->implode_escape($aModulesContexts) . "))) ", BX_NTFS_STYPE_FOLLOW_MEMBER, BX_NTFS_STYPE_FOLLOW_CONTEXT);
|
|
|
+ break;
|
|
|
|
|
|
- if(!empty($aQueryParts['fields']['added']))
|
|
|
- $sWhereClause .= "AND `{$this->_sTable}`.`date` > " . $aQueryParts['fields']['added'];
|
|
|
+ case BX_NTFS_TYPE_OBJECT_OWNER_AND_CONNECTIONS:
|
|
|
+ $sWhereClauseObjectOwner = $this->prepareAsString("`{$this->_sTable}`.`owner_id` <> `{$this->_sTable}`.`object_owner_id` AND `{$this->_sTable}`.`object_owner_id`=? ", $aParams['owner_id']);
|
|
|
+ $sWhereClauseObjectOwner .= $this->prepareAsString("AND `{$this->_sTableSettings}`.`type`=?", BX_NTFS_STYPE_PERSONAL);
|
|
|
|
|
|
- list($aModulesProfiles, $aModulesContexts) = $this->_oConfig->getProfileBasedModules();
|
|
|
- $sWhereClause .= $this->prepareAsString("AND ((`{$this->_sTableSettings}`.`type`=? AND `tsp`.`type` IN (" . $this->implode_escape($aModulesProfiles) . ")) || (`{$this->_sTableSettings}`.`type`=? AND `tsp`.`type` IN (" . $this->implode_escape($aModulesContexts) . "))) ", BX_NTFS_STYPE_FOLLOW_MEMBER, BX_NTFS_STYPE_FOLLOW_CONTEXT);
|
|
|
- break;
|
|
|
+ $sWhereClauseConnections = '0';
|
|
|
+ $oConnection = BxDolConnection::getObjectInstance($this->_oConfig->getObject('conn_subscriptions'));
|
|
|
+ $aQueryParts = $oConnection->getConnectedContentAsSQLPartsExt($this->_sTable, 'owner_id', $aParams['owner_id']);
|
|
|
+ if(!empty($aQueryParts) && is_array($aQueryParts) && !empty($aQueryParts['join'])) {
|
|
|
+ $sJoinClause .= " LEFT JOIN `sys_profiles` AS `tsp` ON `{$this->_sTable}`.`owner_id`=`tsp`.`id`";
|
|
|
+ $sJoinClause .= " LEFT JOIN `" . $aQueryParts['join']['table'] . "` AS `" . $aQueryParts['join']['table_alias'] . "` ON (" . $aQueryParts['join']['condition'] . ")";
|
|
|
|
|
|
- case BX_NTFS_TYPE_OBJECT_OWNER_AND_CONNECTIONS:
|
|
|
- $sWhereClauseObjectOwner = $this->prepareAsString("`{$this->_sTable}`.`owner_id` <> `{$this->_sTable}`.`object_owner_id` AND `{$this->_sTable}`.`object_owner_id`=? ", $aParams['owner_id']);
|
|
|
- $sWhereClauseObjectOwner .= $this->prepareAsString("AND `{$this->_sTableSettings}`.`type`=?", BX_NTFS_STYPE_PERSONAL);
|
|
|
-
|
|
|
- $sWhereClauseConnections = '0';
|
|
|
- $oConnection = BxDolConnection::getObjectInstance($this->_oConfig->getObject('conn_subscriptions'));
|
|
|
- $aQueryParts = $oConnection->getConnectedContentAsSQLPartsExt($this->_sTable, 'owner_id', $aParams['owner_id']);
|
|
|
- if(!empty($aQueryParts) && is_array($aQueryParts) && !empty($aQueryParts['join'])) {
|
|
|
- $sJoinClause .= " LEFT JOIN `sys_profiles` AS `tsp` ON `{$this->_sTable}`.`owner_id`=`tsp`.`id`";
|
|
|
- $sJoinClause .= " LEFT JOIN `" . $aQueryParts['join']['table'] . "` AS `" . $aQueryParts['join']['table_alias'] . "` ON (" . $aQueryParts['join']['condition'] . ")";
|
|
|
-
|
|
|
- $sWhereClauseConnections = "NOT ISNULL(`c`.`content`) ";
|
|
|
- if(!empty($aQueryParts['fields']['added']))
|
|
|
- $sWhereClauseConnections .= "AND `{$this->_sTable}`.`date` > `" . $aQueryParts['fields']['added']['table_alias'] . "`.`" . $aQueryParts['fields']['added']['name'] . "` ";
|
|
|
+ $sWhereClauseConnections = "NOT ISNULL(`c`.`content`) ";
|
|
|
+ if(!empty($aQueryParts['fields']['added']))
|
|
|
+ $sWhereClauseConnections .= "AND `{$this->_sTable}`.`date` > `" . $aQueryParts['fields']['added']['table_alias'] . "`.`" . $aQueryParts['fields']['added']['name'] . "` ";
|
|
|
|
|
|
- list($aModulesProfiles, $aModulesContexts) = $this->_oConfig->getProfileBasedModules();
|
|
|
- $sWhereClauseConnections .= $this->prepareAsString("AND ((`{$this->_sTableSettings}`.`type`=? AND `tsp`.`type` IN (" . $this->implode_escape($aModulesProfiles) . ")) || (`{$this->_sTableSettings}`.`type`=? AND `tsp`.`type` IN (" . $this->implode_escape($aModulesContexts) . "))) ", BX_NTFS_STYPE_FOLLOW_MEMBER, BX_NTFS_STYPE_FOLLOW_CONTEXT);
|
|
|
- }
|
|
|
+ list($aModulesProfiles, $aModulesContexts) = $this->_oConfig->getProfileBasedModules();
|
|
|
+ $sWhereClauseConnections .= $this->prepareAsString("AND ((`{$this->_sTableSettings}`.`type`=? AND `tsp`.`type` IN (" . $this->implode_escape($aModulesProfiles) . ")) || (`{$this->_sTableSettings}`.`type`=? AND `tsp`.`type` IN (" . $this->implode_escape($aModulesContexts) . "))) ", BX_NTFS_STYPE_FOLLOW_MEMBER, BX_NTFS_STYPE_FOLLOW_CONTEXT);
|
|
|
+ }
|
|
|
|
|
|
- $sWhereClause .= "AND ((" . $sWhereClauseObjectOwner . ") || (" . $sWhereClauseConnections . ")) AND `{$this->_sTableSettings}`.`active`='1' AND (ISNULL(`{$this->_sTableSettings2Users}`.`active`) OR `{$this->_sTableSettings2Users}`.`active`='1') ";
|
|
|
- break;
|
|
|
- }
|
|
|
+ $sWhereClause .= "AND ((" . $sWhereClauseObjectOwner . ") || (" . $sWhereClauseConnections . ")) AND `{$this->_sTableSettings}`.`active`='1' AND (ISNULL(`{$this->_sTableSettings2Users}`.`active`) OR `{$this->_sTableSettings2Users}`.`active`='1') ";
|
|
|
+ break;
|
|
|
+ }
|
|
|
|
|
|
return array($sJoinClause, $sWhereClause);
|
|
|
}
|