Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /***
- *
- * LOOP TEMP FUNCTIONS
- *
- **/
- private $_queueTempId;
- private $_queueExtras;
- private $_queueInit = true;
- private function _queueLoop($name, $loops, $datas, $redirect, $phrase = '')
- {
- if(!XenForo_Visitor::getInstance()->isSuperAdmin())
- {
- throw $this->responseException($this->responseError(new XenForo_Phrase('sedo_chinesewords_only_for_superadmins'), 404));
- }
- if($this->_queueInit == true)
- {
- $this->_getTempModel()->createTempDb();
- }
- XenForo_Application::setSimpleCacheData('sedo_chinese_loop', $name);
- $protectedFunction = "_$name";
- $i = $loops;
- if(!empty($datas))
- {
- foreach($datas as $key => $data)
- {
- if($i > 0)
- {
- $this->$protectedFunction($data);
- unset($datas[$key]);
- $i--;
- }
- else
- {
- continue;
- }
- }
- }
- if(empty($datas))
- {
- $this->_getTempModel()->deleteTempDb();
- if($phrase)
- {
- return $this->responseRedirect(
- XenForo_ControllerResponse_Redirect::SUCCESS,
- XenForo_Link::buildAdminLink($redirect),
- new XenForo_Phrase($phrase)
- );
- }
- return $this->responseRedirect(
- XenForo_ControllerResponse_Redirect::SUCCESS,
- XenForo_Link::buildAdminLink($redirect)
- );
- }
- $dw = XenForo_DataWriter::create('Sedo_Chinese_DataWriter_Temp');
- if ($this->_getTempModel()->getDatasByName($name))
- {
- if ($this->_getTempModel()->getDatasById($this->_queueTempId))
- {
- $dw->setExistingData($this->_queueTempId);
- }
- else
- {
- $unerasedDatas = $this->_getTempModel()->getDatasByName($name);
- $dw->setExistingData($unerasedDatas['id']);
- $dw->delete();
- }
- }
- $dwInput = array(
- 'name' => $name,
- 'loops' => $loops,
- 'temp' => serialize($datas),
- 'redirect' => $redirect,
- 'phrase' => $phrase,
- 'extras' => serialize($this->_queueExtras)
- );
- $dw->bulkSet($dwInput);
- $dw->save();
- $viewParams = array(
- 'name' => $name,
- 'remaining' => count($datas)
- );
- return $this->responseView('XenForo_ViewAdmin_ChineseWords_Loop', 'chinese_words_loop', $viewParams);
- }
- public function actionLaunchQueue()
- {
- $name = XenForo_Application::getSimpleCacheData('sedo_chinese_loop');
- $tmp = $this->_getTempModel()->getDatasByName($name);
- $this->_queueTempId = $tmp['id'];
- $this->_queueExtras = unserialize($tmp['extras']);
- $this->_queueInit = false;
- return $this->_queueLoop($tmp['name'], $tmp['loops'], unserialize($tmp['temp']), $tmp['redirect']);
- }
- protected function _getTempModel()
- {
- return $this->getModelFromCache('Sedo_Chinese_Model_Temp');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement