BxDolCategoryQuery.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup UnaCore UNA Core
  7. * @{
  8. */
  9. /**
  10. * Database queries for category objects.
  11. * @see BxDolCategory
  12. */
  13. class BxDolCategoryQuery extends BxDolDb
  14. {
  15. protected $_aObject;
  16. public function __construct($aObject)
  17. {
  18. parent::__construct();
  19. $this->_aObject = $aObject;
  20. }
  21. static public function getCategoryObject ($sObject)
  22. {
  23. $oDb = BxDolDb::getInstance();
  24. $sQuery = $oDb->prepare("SELECT * FROM `sys_objects_category` WHERE `object` = ?", $sObject);
  25. $aObject = $oDb->getRow($sQuery);
  26. if (!$aObject || !is_array($aObject))
  27. return false;
  28. return $aObject;
  29. }
  30. static public function getCategoryObjectByFormAndList ($sObjectForm, $sListName)
  31. {
  32. $oDb = BxDolDb::getInstance();
  33. $sQuery = $oDb->prepare("SELECT * FROM `sys_objects_category` WHERE `form_object` = ? AND `list_name` = ?", $sObjectForm, $sListName);
  34. $aObject = $oDb->getRow($sQuery);
  35. if (!$aObject || !is_array($aObject))
  36. return false;
  37. return $aObject;
  38. }
  39. static public function getItemsNumInCategory ($aObject, $sCategoryValue, $bPublicOnly = true)
  40. {
  41. $oDb = BxDolDb::getInstance();
  42. $sWhere = '';
  43. // TODO: in the future add 'module' field to categories object
  44. if ($bPublicOnly && ($oModule = BxDolModule::getInstance($aObject['search_object'])) && isset($oModule->_oConfig->CNF['FIELD_ALLOW_VIEW_TO'])) {
  45. bx_import('BxDolPrivacy');
  46. $a = isLogged() ? array(BX_DOL_PG_ALL, BX_DOL_PG_MEMBERS) : array(BX_DOL_PG_ALL);
  47. $sWhere = ' AND `' . $aObject['table'] . '`.`' . $oModule->_oConfig->CNF['FIELD_ALLOW_VIEW_TO'] . '` IN(' . $oDb->implode_escape($a) . ') ';
  48. }
  49. return $oDb->getOne("SELECT COUNT(*) FROM `" . $aObject['table'] . "` " . $aObject['join'] . " WHERE `" . $aObject['field'] . "` = :cat " . $aObject['where'] . $sWhere, array('cat' => $sCategoryValue));
  50. }
  51. }
  52. /** @} */