*/ /** * stSlideBannerBackend actions. * * @author Your name here * * @package stAdminGeneratorPlugin * @subpackage actions */ class stSlideBannerBackendActions extends autostSlideBannerBackendActions { /** * Sortowanie cen czasowych - rekord zmienia swoją pozycję na wyższą */ public function executeMoveUp() { $id = $this->getRequestParameter('id'); $webpage = SlideBannerPeer::retrieveByPK($id); $webpage->moveUp(); $webpage->save(); return $this->redirect('@stSlideBannerPlugin?action=list&page=' . $this->getRequestParameter('page', 1)); } /** * Sortowanie cen czasowych - rekord zmienia swoją pozycję na niższą */ public function executeMoveDown() { $id = $this->getRequestParameter('id'); $webpage = SlideBannerPeer::retrieveByPK($id); $webpage->moveDown(); $webpage->save(); return $this->redirect('@stSlideBannerPlugin?action=list&page=' . $this->getRequestParameter('page', 1)); } public function validateEdit() { $request = $this->getRequest(); if ($request->getMethod() == sfRequest::POST) { $video_exist = 0; if ($this->getRequest()->getFileSize('slide_banner[video_mp4]')) { $file_size = $this->getRequest()->getFileSize('slide_banner[video_mp4]'); $ext = $this->getRequest()->getFileExtension('slide_banner[video_mp4]'); $ext = "mp4"; if ($file_size > "10000000") { $request->setError('slide_banner{video_mp4}', $this->getContext()->getI18N()->__('Za duży rozmiar pliku max 10MB')); } if ($ext!="mp4") { $request->setError('slide_banner{video_mp4}', $this->getContext()->getI18N()->__('Zły format pliku - tylko .mp4')); } $video_exist = 1; } if ($request->getParameter('slide_banner[video_mp4_link]')!="") { $url = $request->getParameter('slide_banner[video_mp4_link]'); $video = false; $url = get_headers($url,1); if($url['Content-Type']=='application/octet-stream' || $url['Content-Type']=='video/mp4'){ $video = true; } if(!$video){ $request->setError('slide_banner{video_mp4_link}', $this->getContext()->getI18N()->__('Zły format pliku - tylko .mp4')); } $video_exist = 1; } $slider_banner_image = stJQueryToolsHelper::parsePluploadFromRequest($request->getParameter('slider_banner_image')); if (!$slider_banner_image['modified'] && ($slider_banner_image['delete'] || !$request->getParameter('id')) && $video_exist == 0) { $request->setError('slide_banner{image}', $this->getContext()->getI18N()->__('Załącz obrazek')); } } return !$request->hasErrors(); } public function executeBannerEnable() { stAuthUsersListener::checkModificationCredentials($this, $this->getRequest(), $this->getModuleName()); $banners = SlideBannerPeer::retrieveByPKs($this->getRequestParameter('slide_banner[selected]', array())); foreach ($banners as $banner) { $banner->setIsActive(true); $banner->save(); } return $this->redirect('@stSlideBannerPlugin?action=list&page=' . $this->getRequestParameter('page', 1)); } public function executeBannerDisable() { stAuthUsersListener::checkModificationCredentials($this, $this->getRequest(), $this->getModuleName()); $banners = SlideBannerPeer::retrieveByPKs($this->getRequestParameter('slide_banner[selected]', array())); foreach ($banners as $banner) { $banner->setIsActive(false); $banner->save(); } return $this->redirect('@stSlideBannerPlugin?action=list&page=' . $this->getRequestParameter('page', 1)); } protected function saveSlideBanner($slide_banner) { parent::saveSlideBanner($slide_banner); if ($this->getRequest()->getFileSize('slide_banner[video_mp4]')) { $currentFile = sfConfig::get('sf_upload_dir') . $slide_banner->getVideoMp4(); $fileName = md5($this->getRequest()->getFileName('slide_banner[video_mp4]') . time() . rand(0, 99999)); $ext = $this->getRequest()->getFileExtension('slide_banner[video_mp4]'); if (is_file($currentFile)) { unlink($currentFile); } $slide_banner->setVideoMp4("/banner_video/". $slide_banner->getId() ."/". $this->getRequestParameter('culture', stLanguage::getOptLanguage()) . '/' . $fileName . $ext); $this->getRequest()->moveFile('slide_banner[video_mp4]', sfConfig::get('sf_upload_dir') . $slide_banner->getVideoMp4()); } /*echo $this->getRequestParameter('culture', stLanguage::getOptLanguage()); die(); $slide_banner->setOptCulture($this->getRequestParameter('culture', stLanguage::getOptLanguage()));*/ $slide_banner->save(); $this->saveSlideBannerImage($slide_banner); } protected function saveSlideBannerImage($slide_banner) { $plupload = stJQueryToolsHelper::parsePluploadFromRequest($this->getRequestParameter('slider_banner_image')); if ($plupload['delete']) { $slide_banner->removeImage(); } if ($plupload['modified']) { $slide_banner->removeImage(); foreach ($plupload['modified'] as $filename) { $source = $plupload['dir'] . '/' . $filename; $dest = $slide_banner->genImagePath($filename, true); stJQueryToolsHelper::pluploadCopy($source, $dest); $slide_banner->setImage($slide_banner->genImagePath($filename)); } } stJQueryToolsHelper::pluploadCleanup($plupload); $plupload = stJQueryToolsHelper::parsePluploadFromRequest($this->getRequestParameter('slider_banner_image_small')); if ($plupload['delete']) { $slide_banner->removeImageSmall(); } if ($plupload['modified']) { $slide_banner->removeImageSmall(); foreach ($plupload['modified'] as $filename) { $source = $plupload['dir'] . '/' . $filename; $dest = $slide_banner->genImagePath('mobile-' . $filename, true); stJQueryToolsHelper::pluploadCopy($source, $dest); $slide_banner->setImageSmall($slide_banner->genImagePath('mobile-' . $filename)); } } stJQueryToolsHelper::pluploadCleanup($plupload); $slide_banner->save(); } protected function loadConfigOrCreate() { $config = parent::loadConfigOrCreate(); if (!stTheme::is_theme8()) { $this->hideField('banner_wide'); $this->hideField('banner_arrows'); $this->hideField('banner_pagination'); $this->hideField('banner_delay'); $this->hideField('banner_effect'); $this->hideField('banner_anim_text_on'); $this->hideField('banner_anim_text_style'); } if ($this->getTheme()->getThemeName() == 'marrone') { $this->hideField('banner_wide'); } return $config; } protected function saveConfig() { parent::saveConfig(); SlideBannerPeer::clearCache(); stFastCacheManager::clearCache(); } public function executeDeleteVideo() { $id = $this->getRequestParameter('id'); $lang = $this->getRequestParameter('lang'); $slideBanner = SlideBannerPeer::retrieveByPK($id); $slideBanner->setVideoMp4(null); $slideBanner->save(); stFastCacheManager::clearCache(); foreach (glob(sfConfig::get('sf_root_dir').'/cache/smarty_c/*') as $file) { unlink($file);} $this->setFlash('notice', 'Video zostało usunięte'); $this->redirect('stSlideBannerBackend/edit?id='.$id); } }