BxResourcesDb.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. * @defgroup Resources Resources
  6. * @ingroup UnaModules
  7. *
  8. * @{
  9. */
  10. /*
  11. * Module database queries
  12. */
  13. class BxResourcesDb extends BxBaseModTextDb
  14. {
  15. public function __construct(&$oConfig)
  16. {
  17. parent::__construct($oConfig);
  18. }
  19. public function addList ($iContextId, $sTitle, $bDefault = 0)
  20. {
  21. $CNF = &$this->_oConfig->CNF;
  22. return $this->query("INSERT INTO `" . $CNF['TABLE_LISTS'] . "` (`context_id`, `title`, `default`) VALUES (:context_id, :title, :default)", [
  23. 'context_id' => $iContextId,
  24. 'title' => $sTitle,
  25. 'default' => $bDefault
  26. ]) ? $this->lastId() : false;
  27. }
  28. public function addListDefault ($iContextId)
  29. {
  30. return $this->addList ($iContextId, '', 1);
  31. }
  32. public function getLists ($iContextId = 0)
  33. {
  34. $CNF = &$this->_oConfig->CNF;
  35. return $this->getAll("SELECT * FROM `" . $CNF['TABLE_LISTS'] . "` WHERE `context_id` = :context_id", [
  36. 'context_id' => $iContextId
  37. ]);
  38. }
  39. public function getListDefault ($iContextId = 0)
  40. {
  41. $CNF = &$this->_oConfig->CNF;
  42. return $this->getRow("SELECT * FROM `" . $CNF['TABLE_LISTS'] . "` WHERE `context_id` = :context_id AND `default`='1'", [
  43. 'context_id' => $iContextId
  44. ]);
  45. }
  46. public function getList ($iId = 0)
  47. {
  48. $CNF = &$this->_oConfig->CNF;
  49. return $this->getRow("SELECT * FROM `" . $CNF['TABLE_LISTS'] . "` WHERE `id` = :id", [
  50. 'id' => $iId
  51. ]);
  52. }
  53. public function deleteList ($iId = 0)
  54. {
  55. $CNF = &$this->_oConfig->CNF;
  56. $this->query("DELETE FROM `" . $CNF['TABLE_LISTS'] . "` WHERE `id` = :id", [
  57. 'id' => $iId
  58. ]);
  59. $this->query("DELETE FROM `" . $CNF['TABLE_ENTRIES'] . "` WHERE `" . $CNF['FIELD_LIST'] . "` = :list", [
  60. 'list' => $iId
  61. ]);
  62. }
  63. public function getResources ($iContextId = 0, $iListId = 0)
  64. {
  65. $CNF = &$this->_oConfig->CNF;
  66. $aBindings = [];
  67. $sSelectClause = "`te`.*";
  68. $sJoinClause = $sWhereClause = "";
  69. if(($sField = $CNF['FIELD_ALLOW_VIEW_TO']) && $iContextId) {
  70. $aBindings[$sField] = $iContextId;
  71. $sWhereClause .= " AND ABS(`te`.`" . $sField . "`) = :" . $sField;
  72. }
  73. if(($sField = $CNF['FIELD_LIST']) && $iListId) {
  74. $aBindings[$sField] = $iListId;
  75. $sWhereClause .= " AND `te`.`" . $sField . "` = :" . $sField;
  76. }
  77. if(($oCf = BxDolContentFilter::getInstance()) && $oCf->isEnabled())
  78. $sWhereClause .= $oCf->getSQLParts('te', $CNF['FIELD_CF']);
  79. return $this->getAll("SELECT " . $sSelectClause . " FROM `" . $CNF['TABLE_ENTRIES'] . "` AS `te`" . $sJoinClause . " WHERE 1" . $sWhereClause, $aBindings);
  80. }
  81. }
  82. /** @} */