BxTasksGridTimeContextAdministration.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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 Tasks Tasks
  6. * @ingroup UnaModules
  7. *
  8. * @{
  9. */
  10. require_once('BxTasksGridTime.php');
  11. class BxTasksGridTimeContextAdministration extends BxTasksGridTime
  12. {
  13. protected $_iContextPid;
  14. public function __construct ($aOptions, $oTemplate = false)
  15. {
  16. parent::__construct ($aOptions, $oTemplate);
  17. if(($iContextPid = bx_get('context_pid')) !== false)
  18. $this->setContextPid($iContextPid);
  19. }
  20. public function setContextPid($iContextPid)
  21. {
  22. $CNF = &$this->_oModule->_oConfig->CNF;
  23. $this->_iContextPid = (int)$iContextPid;
  24. $this->_aQueryAppend['context_pid'] = $this->_iContextPid;
  25. /*
  26. * Filter by author_id
  27. */
  28. if($this->_isAdministration())
  29. $this->_initFilter(1, $this->_oModule->getContextMembers($this->_iContextPid));
  30. /*
  31. * Filter by object_id
  32. */
  33. $this->_initFilter(2, $this->_oModule->getContextEntries($this->_iContextPid));
  34. }
  35. protected function _getFilterControls()
  36. {
  37. $this->_getFcDefault();
  38. $sContent = $this->_getFilterSelectOne($this->_sFilter1Name, $this->_sFilter1Value, $this->_aFilter1Values, '_bx_tasks_grid_filter_item_title_tm_select_one_author_id');
  39. $sContent .= $this->_getFilterSelectOne($this->_sFilter2Name, $this->_sFilter2Value, $this->_aFilter2Values, '_bx_tasks_grid_filter_item_title_tm_select_one_object_id');
  40. $sContent .= $this->_getFcDateSearch();
  41. return $sContent;
  42. }
  43. protected function _getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage)
  44. {
  45. $this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND ABS(`tt`.`allow_view_to`)=?", $this->_iContextPid);
  46. $this->_parseFilterValue($sFilter);
  47. if(!empty($this->_sFilter1Value))
  48. $this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `ttt`.`author_id`=?", $this->_sFilter1Value);
  49. if(!empty($this->_sFilter2Value))
  50. $this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `ttt`.`object_id`=?", $this->_sFilter2Value);
  51. if(!empty($this->_sFilter3Value))
  52. $this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `ttt`.`value_date`>=?", strtotime($this->_sFilter3Value));
  53. if(!empty($this->_sFilter4Value))
  54. $this->_aOptions['source'] .= $this->_oModule->_oDb->prepareAsString(" AND `ttt`.`value_date`<=?", strtotime($this->_sFilter4Value));
  55. return parent::__getDataSql($sFilter, $sOrderField, $sOrderDir, $iStart, $iPerPage);
  56. }
  57. }
  58. /** @} */