| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- <?php defined('BX_DOL') or die('hack attempt');
- /**
- * Copyright (c) UNA, Inc - https://una.io
- * MIT License - https://opensource.org/licenses/MIT
- *
- * @defgroup BaseText Base classes for text modules
- * @ingroup UnaModules
- *
- * @{
- */
- /**
- * Entry forms helper functions
- */
- class BxBaseModTextFormsEntryHelper extends BxBaseModGeneralFormsEntryHelper
- {
- public function __construct($oModule)
- {
- parent::__construct($oModule);
- }
- /**
- * @return main content text
- */
- public function viewDataText ($iContentId)
- {
- $CNF = &$this->_oModule->_oConfig->CNF;
- // get content data and profile info
- list ($oProfile, $aContentInfo) = $this->_getProfileAndContentData($iContentId);
- if (!$aContentInfo)
- return MsgBox(_t('_sys_txt_error_entry_is_not_defined'));
- // check access
- if (CHECK_ACTION_RESULT_ALLOWED !== ($sMsg = $this->_oModule->checkAllowedView($aContentInfo)))
- return MsgBox($sMsg);
- return $aContentInfo[$CNF['FIELD_TEXT']];
- }
- /**
- * @return array of profile object and content info
- */
- protected function _getProfileAndContentData ($iContentId)
- {
- $CNF = &$this->_oModule->_oConfig->CNF;
- $aContentInfo = array();
- $oProfile = false;
- $aContentInfo = $this->_oModule->_oDb->getContentInfoById($iContentId);
- if (!$aContentInfo)
- return array (false, false);
- $oProfile = BxDolProfile::getInstance($aContentInfo[$CNF['FIELD_AUTHOR']]);
- if (!$oProfile)
- $oProfile = BxDolProfileUndefined::getInstance();
- return array ($oProfile, $aContentInfo);
- }
- public function onDataEditAfter ($iContentId, $aContentInfo, $aTrackTextFieldsChanges, $oProfile, $oForm)
- {
- if ($s = parent::onDataEditAfter($iContentId, $aContentInfo, $aTrackTextFieldsChanges, $oProfile, $oForm))
- return $s;
- $CNF = &$this->_oModule->_oConfig->CNF;
- if (!($aContentInfo = $this->_oModule->_oDb->getContentInfoById($iContentId)))
- return MsgBox(_t('_sys_txt_error_occured'));
- if (isset($CNF['FIELD_VIDEO']))
- $oForm->processFiles($CNF['FIELD_VIDEO'], $iContentId, false);
- if (isset($CNF['FIELD_FILE']))
- $oForm->processFiles($CNF['FIELD_FILE'], $iContentId, false);
- if (isset($CNF['FIELD_POLL']))
- $oForm->processPolls($CNF['FIELD_POLL'], $iContentId);
- // change profile to 'pending' only if profile is 'active'
- if ($oProfile->isActive() && !empty($aTrackTextFieldsChanges['changed_fields']))
- $oProfile->disapprove(BX_PROFILE_ACTION_AUTO);
- // alert
- $this->_oModule->alertAfterEdit($aContentInfo);
- return '';
- }
- public function onDataAddAfter ($iAccountId, $iContentId)
- {
- if ($s = parent::onDataAddAfter($iAccountId, $iContentId))
- return $s;
- $CNF = &$this->_oModule->_oConfig->CNF;
- if (!($aContentInfo = $this->_oModule->_oDb->getContentInfoById($iContentId)))
- return MsgBox(_t('_sys_txt_error_occured'));
- if(($oForm = $this->getObjectFormAdd()) !== false) {
- if (isset($CNF['FIELD_VIDEO']))
- $oForm->processFiles($CNF['FIELD_VIDEO'], $iContentId, true);
- if (isset($CNF['FIELD_FILE']))
- $oForm->processFiles($CNF['FIELD_FILE'], $iContentId, true);
- if (isset($CNF['FIELD_POLL']))
- $oForm->processPolls($CNF['FIELD_POLL'], $iContentId);
- }
- // alert
- $this->_oModule->alertAfterAdd($aContentInfo);
- return '';
- }
- public function onDataDeleteAfter($iContentId, $aContentInfo, $oProfile)
- {
- $sResult = parent::onDataDeleteAfter ($iContentId, $aContentInfo, $oProfile);
- if(!empty($sResult))
- return $sResult;
- $this->_oModule->_oDb->deletePolls(array('content_id' => $iContentId));
- return '';
- }
- }
- /** @} */
|