/** * Добавляет блог * * @param ModuleBlog_EntityBlog $oBlog Блог * @return ModuleBlog_EntityBlog|bool */ public function AddBlog(ModuleBlog_EntityBlog $oBlog) { if ($sId = $this->oMapperBlog->AddBlog($oBlog)) { $oBlog->setId($sId); //чистим зависимые кеши $this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array('blog_new')); return $oBlog; } return false; }
/** * Добавляет блог * * @param ModuleBlog_EntityBlog $oBlog Блог * * @return ModuleBlog_EntityBlog|bool */ public function AddBlog(ModuleBlog_EntityBlog $oBlog) { if ($sId = $this->oMapper->AddBlog($oBlog)) { $oBlog->setId($sId); //чистим зависимые кеши E::ModuleCache()->CleanByTags(array('blog_new')); // 1. Удалить значение target_tmp // Нужно затереть временный ключ в ресурсах, что бы в дальнейшем картнка не // воспринималась как временная. if ($sTargetTmp = E::ModuleSession()->GetCookie(ModuleUploader::COOKIE_TARGET_TMP)) { // 2. Удалить куку. // Если прозошло сохранение вновь созданного топика, то нужно // удалить куку временной картинки. Если же сохранялся уже существующий топик, // то удаление куки ни на что влиять не будет. E::ModuleSession()->DelCookie(ModuleUploader::COOKIE_TARGET_TMP); // 3. Переместить фото $sTargetType = 'blog_avatar'; $sTargetId = $sId; $aMresourceRel = E::ModuleMresource()->GetMresourcesRelByTargetAndUser($sTargetType, 0, E::UserId()); if ($aMresourceRel) { $oResource = array_shift($aMresourceRel); $sOldPath = $oResource->GetFile(); //$oStoredFile = E::ModuleUploader()->Store($sOldPath, $sNewPath); $oStoredFile = E::ModuleUploader()->StoreImage($sOldPath, $sTargetType, $sTargetId); /** @var ModuleMresource_EntityMresource $oResource */ $oResource = E::ModuleMresource()->GetMresourcesByUuid($oStoredFile->getUuid()); if ($oResource) { $oResource->setUrl(E::ModuleMresource()->NormalizeUrl(E::ModuleUploader()->GetTargetUrl($sTargetType, $sTargetId))); $oResource->setType($sTargetType); $oResource->setUserId(E::UserId()); $oResource = array($oResource); E::ModuleMresource()->UnlinkFile($sTargetType, 0, E::UserId()); E::ModuleMresource()->AddTargetRel($oResource, $sTargetType, $sTargetId); // 4. Обновим сведения об аватаре у блога для обеспечения обратной // совместимости. Могут быть плагины которые берут картинку непосредственно // из свойства блога, а не через модуль uploader $oBlog->setAvatar($oBlog->getAvatar()); $this->UpdateBlog($oBlog); } } } return $oBlog; } return false; }