BxBaseModGroupsFormEntry.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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 BaseGroups Base classes for groups modules
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. /**
  12. * Create/Edit Group Form.
  13. */
  14. class BxBaseModGroupsFormEntry extends BxBaseModProfileFormEntry
  15. {
  16. public function __construct($aInfo, $oTemplate = false)
  17. {
  18. if (!isset($this->_bAllowChangeUserForAdmins))
  19. $this->_bAllowChangeUserForAdmins = true;
  20. parent::__construct($aInfo, $oTemplate);
  21. $CNF = &$this->_oModule->_oConfig->CNF;
  22. if (isset($this->aInputs['initial_members']) && !isset($this->aInputs['initial_members']['value'])) {
  23. $this->aInputs['initial_members']['value'] = isset($CNF['OBJECT_FORM_ENTRY_DISPLAY_INVITE']) && $CNF['OBJECT_FORM_ENTRY_DISPLAY_INVITE'] == $this->aParams['display'] ? array() : array(bx_get_logged_profile_id());
  24. }
  25. }
  26. function initChecker ($aValues = array (), $aSpecificValues = array())
  27. {
  28. $CNF = &$this->_oModule->_oConfig->CNF;
  29. $bValues = $aValues && !empty($aValues['id']);
  30. $aContentInfo = $bValues ? $this->_oModule->_oDb->getContentInfoById($aValues['id']) : false;
  31. if(isset($CNF['FIELD_PUBLISHED']) && $this->aParams['display'] == $CNF['OBJECT_FORM_ENTRY_DISPLAY_EDIT'] && isset($this->aInputs[$CNF['FIELD_PUBLISHED']]))
  32. if($bValues && in_array($aValues[$CNF['FIELD_STATUS']], array('active', 'hidden')))
  33. unset($this->aInputs[$CNF['FIELD_PUBLISHED']]);
  34. parent::initChecker ($aValues, $aSpecificValues);
  35. }
  36. public function insert ($aValsToAdd = array(), $isIgnore = false)
  37. {
  38. $CNF = &$this->_oModule->_oConfig->CNF;
  39. if(isset($CNF['FIELD_ADDED']) && empty($aValsToAdd[$CNF['FIELD_ADDED']])) {
  40. $iAdded = 0;
  41. if(isset($this->aInputs[$CNF['FIELD_ADDED']]))
  42. $iAdded = $this->getCleanValue($CNF['FIELD_ADDED']);
  43. if(empty($iAdded))
  44. $iAdded = time();
  45. $aValsToAdd[$CNF['FIELD_ADDED']] = $iAdded;
  46. }
  47. if(isset($CNF['FIELD_PUBLISHED']) && empty($aValsToAdd[$CNF['FIELD_PUBLISHED']])) {
  48. $iPublished = 0;
  49. if(isset($this->aInputs[$CNF['FIELD_PUBLISHED']]))
  50. $iPublished = $this->getCleanValue($CNF['FIELD_PUBLISHED']);
  51. if(empty($iPublished))
  52. $iPublished = time();
  53. $aValsToAdd[$CNF['FIELD_PUBLISHED']] = $iPublished;
  54. }
  55. $aValsToAdd[$CNF['FIELD_STATUS']] = (isset($CNF['FIELD_PUBLISHED']) && ($aValsToAdd[$CNF['FIELD_PUBLISHED']] > $aValsToAdd[$CNF['FIELD_ADDED']])) ? 'awaiting' : 'active';
  56. return parent::insert ($aValsToAdd, $isIgnore);
  57. }
  58. function update ($iContentId, $aValsToAdd = array(), &$aTrackTextFieldsChanges = null)
  59. {
  60. $CNF = &$this->_oModule->_oConfig->CNF;
  61. if(isset($CNF['FIELD_PUBLISHED'])) {
  62. if(empty($aValsToAdd[$CNF['FIELD_PUBLISHED']]) && isset($this->aInputs[$CNF['FIELD_PUBLISHED']])) {
  63. $iPublished = $this->getCleanValue($CNF['FIELD_PUBLISHED']);
  64. if(empty($iPublished))
  65. $iPublished = time();
  66. $aValsToAdd[$CNF['FIELD_PUBLISHED']] = $iPublished;
  67. }
  68. }
  69. $aContentInfo = $this->_oModule->_oDb->getContentInfoById($iContentId);
  70. $mixedResult = parent::update($iContentId, $aValsToAdd, $aTrackTextFieldsChanges);
  71. if($mixedResult && ($iAuthorId = (int)$this->getCleanValue($CNF['FIELD_AUTHOR'])) && (int)$aContentInfo[$CNF['FIELD_AUTHOR']] != $iAuthorId) {
  72. $oProfileAuthor = BxDolProfile::getInstance($iAuthorId);
  73. $oProfileContent = BxDolProfile::getInstanceByContentAndType($iContentId, $this->MODULE);
  74. if($oProfileAuthor !== false && $oProfileContent !== false)
  75. $oProfileContent->move($oProfileAuthor->getAccountId());
  76. }
  77. return $mixedResult;
  78. }
  79. protected function genCustomInputInitialMembers ($aInput)
  80. {
  81. $aInput['ajax_get_suggestions'] = BX_DOL_URL_ROOT . "modules/?r=" . $this->_oModule->_oConfig->getUri() . "/ajax_get_initial_members";
  82. return $this->genCustomInputUsernamesSuggestions($aInput);
  83. }
  84. }
  85. /** @} */