From 895d513abfde90bf1ea87a4e8b74c289c3bc611d Mon Sep 17 00:00:00 2001 From: gigabyte <1099511627776@mail.ru> Date: Fri, 16 Aug 2013 15:40:27 +0300 Subject: [PATCH] Imaplemented Ajax Convert and Reconvert --- classes/actions/ActionMain.class.php | 156 +++++++++++------- templates/language/russian.php | 24 +-- .../default/actions/ActionMain/convert.tpl | 28 +++- .../default/actions/ActionMain/reconvert.tpl | 28 +++- 4 files changed, 158 insertions(+), 78 deletions(-) diff --git a/classes/actions/ActionMain.class.php b/classes/actions/ActionMain.class.php index c95a8da..87bb6c8 100755 --- a/classes/actions/ActionMain.class.php +++ b/classes/actions/ActionMain.class.php @@ -17,72 +17,108 @@ class PluginMainpreview_ActionMain extends ActionPlugin { - /** - * Инициализация - * - * @return null - */ - public function Init() { - /** - * Если пользователь не авторизован и не админ, то выкидываем его - */ - $this->oUserCurrent=$this->User_GetUserCurrent(); - if (!$this->oUserCurrent or !$this->oUserCurrent->isAdministrator()) { - return $this->EventNotFound(); - } - } + /** + * Инициализация + * + * @return null + */ + public function Init() { + /** + * Если пользователь не авторизован и не админ, то выкидываем его + */ + $this->oUserCurrent=$this->User_GetUserCurrent(); + if (!$this->oUserCurrent or !$this->oUserCurrent->isAdministrator()) { + return $this->EventNotFound(); + } + } - protected function RegisterEvent() { - $this->AddEvent('convert','EventConvert'); - $this->AddEvent('reconvert','EventReConvert'); - } + protected function RegisterEvent() { + $this->AddEvent('convert','EventConvert'); + $this->AddEvent('reconvert','EventReConvert'); + $this->AddEvent('ajaxconvert','EventAjaxConvert'); + $this->AddEvent('ajaxreconvert','EventAjaxReConvert'); + } - /********************************************************************************** - ************************ РЕАЛИЗАЦИЯ ЭКШЕНА *************************************** - ********************************************************************************** - */ + /********************************************************************************** + ************************ РЕАЛИЗАЦИЯ ЭКШЕНА *************************************** + ********************************************************************************** + */ - /** - * Автоматическое создание превью для топиков - */ - protected function EventConvert() { - if (isPost('submit_convert')) { - $this->Security_ValidateSendForm(); - set_time_limit(0); + /** + * Автоматическое создание превью для топиков + */ + protected function EventConvert() { + if (isPost('submit_convert')) { + $this->Security_ValidateSendForm(); + set_time_limit(0); - $iPage=1; - $iCount=0; - while ($aTopics=$this->PluginMainpreview_Main_GetTopics($iPage,20)) { - $iPage++; - foreach($aTopics as $oTopic) { - $this->PluginMainpreview_Main_SaveTopic($oTopic); - $iCount++; - } - } - $this->Message_AddNotice($this->Lang_Get('plugin.mainpreview.convert_end',array('count_topic'=>$iCount))); - } - } + $iPage=1; + $iCount=0; + while ($aTopics=$this->PluginMainpreview_Main_GetTopics($iPage,20)) { + $iPage++; + foreach($aTopics as $oTopic) { + $this->PluginMainpreview_Main_SaveTopic($oTopic); + $iCount++; + } + } + $this->Message_AddNotice($this->Lang_Get('plugin.mainpreview.convert_end',array('count_topic'=>$iCount))); + } + } - /** - * Переконвертация превью к новым размерам - */ - protected function EventReConvert() { - if (isPost('submit_reconvert')) { - $this->Security_ValidateSendForm(); - set_time_limit(0); + protected function EventAjaxConvert(){ + $this->Viewer_SetResponseAjax('json'); + $this->Security_ValidateSendForm(); + $iPage = $this->GetParam(0); + $iCount = 0; + if($aTopics=$this->PluginMainpreview_Main_GetTopics($iPage,20)){ + foreach($aTopics as $oTopic) { + $this->PluginMainpreview_Main_SaveTopic($oTopic); + $iCount++; + } + $this->Message_AddNotice($this->Lang_Get('plugin.mainpreview.convert_end',array('count_topic'=>$iCount,'page_num'=>$iPage))); + return; + } else { + $this->Message_AddError($this->Lang_Get('plugin.mainpreview.convert_end',array('count_topic'=>$iCount,'page_num'=>$iPage))); + } + } - $iPage=1; - $iCount=0; - while ($aTopics=$this->PluginMainpreview_Main_GetTopics($iPage,30,array())) { - $iPage++; - foreach($aTopics as $oTopic) { - $this->PluginMainpreview_Main_ReMakePreview($oTopic); - $iCount++; - } - } - $this->Message_AddNotice($this->Lang_Get('plugin.mainpreview.reconvert_end',array('count_topic'=>$iCount))); - } - } + /** + * Переконвертация превью к новым размерам + */ + protected function EventReConvert() { + if (isPost('submit_reconvert')) { + $this->Security_ValidateSendForm(); + set_time_limit(0); + + $iPage=1; + $iCount=0; + while ($aTopics=$this->PluginMainpreview_Main_GetTopics($iPage,30,array())) { + $iPage++; + foreach($aTopics as $oTopic) { + $this->PluginMainpreview_Main_ReMakePreview($oTopic); + $iCount++; + } + } + $this->Message_AddNotice($this->Lang_Get('plugin.mainpreview.reconvert_end',array('count_topic'=>$iCount))); + } + } + + protected function EventAjaxReConvert(){ + $this->Viewer_SetResponseAjax('json'); + $this->Security_ValidateSendForm(); + $iPage = $this->GetParam(0); + $iCount = 0; + if($aTopics=$this->PluginMainpreview_Main_GetTopics($iPage,20)){ + foreach($aTopics as $oTopic) { + $this->PluginMainpreview_Main_ReMakePreview($oTopic); + $iCount++; + } + $this->Message_AddNotice($this->Lang_Get('plugin.mainpreview.convert_end',array('count_topic'=>$iCount,'page_num'=>$iPage))); + return; + } else { + $this->Message_AddError($this->Lang_Get('plugin.mainpreview.convert_end',array('count_topic'=>$iCount,'page_num'=>$iPage))); + } + } } ?> \ No newline at end of file diff --git a/templates/language/russian.php b/templates/language/russian.php index 9e93b93..49e0436 100755 --- a/templates/language/russian.php +++ b/templates/language/russian.php @@ -19,18 +19,18 @@ * Русский языковой файл плагина */ return array( - 'admin_list_convert' => 'Провести поиск и автоматическую генерацию превью для топиков', - 'admin_list_reconvert' => 'Провести переконвертацию всех превью к новым размерам из конфига', - 'submit_convert' => 'Запустить генерацию превью', - 'submit_convert_notice' => 'Внимание! Если у вас много топиков, то процесс генерации может занять длительное время. ', - 'submit_reconvert' => 'Запустить перегенерацию превью', - 'submit_reconvert_notice' => 'Внимание! Если у вас много топиков, то процесс перегенерации может занять длительное время. ', - 'convert_end' => 'Проверено топиков %%count_topic%%', - 'reconvert_end' => 'Переконвертировано топиков %%count_topic%%', - 'form_preview_image_delete' => 'Удалить превью', - 'form_preview_image_delete_auto' => 'автоматическое', - 'form_preview_image' => 'Превью топика', - 'form_preview_image_notice' => 'Вы можете загрузить картинку, которая будет превью топика на главной странице', + 'admin_list_convert' => 'Провести поиск и автоматическую генерацию превью для топиков', + 'admin_list_reconvert' => 'Провести переконвертацию всех превью к новым размерам из конфига', + 'submit_convert' => 'Запустить генерацию превью', + 'submit_convert_notice' => 'Внимание! Если у вас много топиков, то процесс генерации может занять длительное время. ', + 'submit_reconvert' => 'Запустить перегенерацию превью', + 'submit_reconvert_notice' => 'Внимание! Если у вас много топиков, то процесс перегенерации может занять длительное время. ', + 'convert_end' => 'Проверено топиков %%count_topic%% (страница %%page_num%%)', + 'reconvert_end' => 'Переконвертировано топиков %%count_topic%% (страница %%page_num%%)', + 'form_preview_image_delete' => 'Удалить превью', + 'form_preview_image_delete_auto' => 'автоматическое', + 'form_preview_image' => 'Превью топика', + 'form_preview_image_notice' => 'Вы можете загрузить картинку, которая будет превью топика на главной странице', ); ?> \ No newline at end of file diff --git a/templates/skin/default/actions/ActionMain/convert.tpl b/templates/skin/default/actions/ActionMain/convert.tpl index 41e2308..73e1aee 100644 --- a/templates/skin/default/actions/ActionMain/convert.tpl +++ b/templates/skin/default/actions/ActionMain/convert.tpl @@ -1,9 +1,31 @@ {include file='header.tpl'}
- - {$aLang.plugin.mainpreview.submit_convert_notice} - + + {$aLang.plugin.mainpreview.submit_convert_notice} +
+ + +Ajax convert + {include file='footer.tpl'} \ No newline at end of file diff --git a/templates/skin/default/actions/ActionMain/reconvert.tpl b/templates/skin/default/actions/ActionMain/reconvert.tpl index 9ffa63d..006ce71 100644 --- a/templates/skin/default/actions/ActionMain/reconvert.tpl +++ b/templates/skin/default/actions/ActionMain/reconvert.tpl @@ -1,9 +1,31 @@ {include file='header.tpl'}
- - {$aLang.plugin.mainpreview.submit_reconvert_notice} - + + {$aLang.plugin.mainpreview.submit_reconvert_notice} +
+ + +Ajax convert + {include file='footer.tpl'} \ No newline at end of file