BxStoriesFormMedia.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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 Stories Stories
  7. * @ingroup UnaModules
  8. *
  9. * @{
  10. */
  11. /**
  12. * Create/Edit entry form
  13. */
  14. class BxStoriesFormMedia extends BxTemplFormView
  15. {
  16. protected $_sModule;
  17. protected $_oModule;
  18. protected $_iMediaId;
  19. protected $_aMediaInfo;
  20. public function __construct($aInfo, $oTemplate = false)
  21. {
  22. $this->_sModule = 'bx_stories';
  23. $this->_oModule = BxDolModule::getInstance($this->_sModule);
  24. parent::__construct($aInfo, $oTemplate);
  25. }
  26. public function initChecker($aValues = array (), $aSpecificValues = array())
  27. {
  28. if(!empty($this->_aMediaInfo) && is_array($this->_aMediaInfo))
  29. $aValues = $this->_aMediaInfo;
  30. parent::initChecker($aValues, $aSpecificValues);
  31. }
  32. public function initForm($aAction, $iMediaId)
  33. {
  34. $CNF = &$this->_oModule->_oConfig->CNF;
  35. $this->_iMediaId = $iMediaId;
  36. $this->_aMediaInfo = $this->_oModule->_oDb->getMediaInfoById($iMediaId);
  37. $this->aFormAttrs['action'] = BX_DOL_URL_ROOT . $this->_oModule->_oConfig->getBaseUri() . $aAction . '_media/' . $iMediaId;
  38. if(isset($this->aInputs['content_id'])) {
  39. $aStories = $this->_oModule->_oDb->getEntriesBy(array('type' => 'author', 'author' => $this->_aMediaInfo['author']));
  40. foreach($aStories as $aStory)
  41. $this->aInputs['content_id']['values'][] = ['key' => $aStory[$CNF['FIELD_ID']], 'value' => $aStory[$CNF['FIELD_TITLE']]];
  42. }
  43. }
  44. public function update($val, $aValsToAdd = array(), &$aTrackTextFieldsChanges = null)
  45. {
  46. $CNF = &$this->_oModule->_oConfig->CNF;
  47. $sField = 'content_id';
  48. if(isset($this->aInputs[$sField])) {
  49. $iContentId = $this->getCleanValue($sField);
  50. $oStorage = BxDolStorage::getObjectInstance($CNF['OBJECT_STORAGE']);
  51. if(!$oStorage->updateGhostsContentId($this->_aMediaInfo['file_id'], $this->_aMediaInfo['author'], $iContentId))
  52. return false;
  53. }
  54. return parent::update($val, $aValsToAdd, $aTrackTextFieldsChanges);
  55. }
  56. }
  57. /** @} */