Files
2025-03-12 17:06:23 +01:00

288 lines
9.8 KiB
PHP

<?php
/**
* SOTESHOP/stAdminGeneratorPlugin
*
* Ten plik należy do aplikacji stAdminGeneratorPlugin opartej na licencji (Open License SOTE) Otwarta Licencja SOTE.
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
*
* @package stAdminGeneratorPlugin
* @subpackage actions
* @copyright SOTE (www.sote.pl)
* @license http://www.sote.pl/license/open (Open License SOTE) Otwarta Licencja SOTE
* @version $Id: actions.class.php 396 2009-09-09 07:59:20Z marcin $
* @author Marcin Butlak <marcin.butlak@sote.pl>
*/
/**
* 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);
}
}