288 lines
9.8 KiB
PHP
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);
|
|
}
|
|
}
|