diff --git a/application/classes/actions/ActionContent.class.php b/application/classes/actions/ActionContent.class.php index d9ca3c5f..a9909fa2 100644 --- a/application/classes/actions/ActionContent.class.php +++ b/application/classes/actions/ActionContent.class.php @@ -400,6 +400,19 @@ class ActionContent extends Action if ($oTopic->getPublishDateRaw()) { $oTopic->setDatePublish(date("Y-m-d H:i:s", $oTopic->getPublishDateRaw())); $bSendNotify = false; + } else { + /** + * Снятие даты публикации, только при условии, что была установлена дата в будущем + */ + if ($oTopic->getDatePublish() and strtotime($oTopic->getDatePublish()) > time()) { + $oTopic->setDatePublish(date("Y-m-d H:i:s")); + /** + * Если сохраняем отложенный в черновик, то считаем, что он еще ниразу не публиковался + */ + if (isset($_REQUEST['is_draft'])) { + $oTopic->setPublishDraft(0); + } + } } $oBlog = $oTopic->getBlog(); /** diff --git a/application/classes/modules/topic/entity/Topic.entity.class.php b/application/classes/modules/topic/entity/Topic.entity.class.php index 39638d8f..01dc29e3 100644 --- a/application/classes/modules/topic/entity/Topic.entity.class.php +++ b/application/classes/modules/topic/entity/Topic.entity.class.php @@ -145,7 +145,7 @@ class ModuleTopic_EntityTopic extends Entity $oTopicType = $this->getTypeObject(); $oUser = $this->getUserCreator(); if ($oTopicType and $oTopicType->isAllowCreateDeferredTopic($oUser)) { - if ((!$this->getId() or !$this->getPublishDraft() or ($this->getDatePublish() and strtotime($this->getDatePublish()) > time())) and isset($aValue['date']) and is_string($aValue['date']) and isset($aValue['time']) and is_string($aValue['time'])) { + if ((!$this->getId() or !$this->getPublishDraft() or ($this->getDatePublish() and strtotime($this->getDatePublish()) > time())) and isset($aValue['date']) and is_string($aValue['date']) and $aValue['date'] and isset($aValue['time']) and is_string($aValue['time'])) { $sDateFull = $aValue['date'] . ' ' . $aValue['time']; if ($this->Validate_Validate('date', $sDateFull, array('format' => 'dd.MM.yyyy HH:mm', 'allowEmpty' => true))) { $sDateFull = strtotime($sDateFull); // для охвата всей минуты