public function doProcess(ArrayAdapter $params) { $postId = $params->int('postId'); $postType = $params->str('postType'); $this->postCP = Handlers::getInstance()->getPostsProcessorByPostType($postType)->getPostContentProvider($postId); check_condition(!!$this->postCP, "Not found post with id='{$postId}' for post type='{$postType}'"); }
protected function executeImpl(ArrayAdapter $params) { $method = $params->str('method'); $params = $params->arr('params'); TestManagerCaller::execute($method, $params); return new AjaxSuccess(); }
/** * @group configuration * @test */ public function default_values_are_returned_for_unavailable_configuration() { $configuration = array('foo' => 'bar'); $arrayAdapter = new ArrayAdapter($configuration); $this->assertNull($arrayAdapter->get('quuz')); $this->assertFalse($arrayAdapter->get('quux', false)); }
public function doProcess(ArrayAdapter $params) { $postId = $params->int('postId'); $postType = $params->str('postType'); $pp = Handlers::getInstance()->getPostsProcessorByPostType($postType); $this->postCP = $pp->getPostContentProvider($postId); }
/** * Метод, вызываемый блоком * {stock name='Мозайка' img='puzzle.png' ident='mosaic' to='2013-12-11 12:00:00' enabled='1' data_id='1'} * для регистрации акции * * @param ArrayAdapter $params - параметры акции. */ public function registerStock(ArrayAdapter $params) { $type = $params->str('type'); if (!$this->existsEntity($type)) { return PsHtml::divErr("Неизвестный тип акции - [{$type}]."); } /* * TODO - выкинута проверка доступа if (!$this->hasAccess($type)) { return ''; } */ /* @var $stock BaseStock */ $stock = $this->getEntityClassInst($type, false); if (!$stock->isUserHasAccess()) { return ''; } $stock->init($params); $type = $stock->getType(); $ident = $stock->getStockIdent(); if (array_key_exists($ident, $this->STOCKS)) { return PsHtml::divErr("Акция [{$stock}] уже зарегистрирована."); } $this->STOCKS[$ident] = $stock; $this->LOGGER->info("STOCK [{$stock}] is registered."); /* * Акция успешно зарегистрирована, покажем её "короткий" вид */ $PARAMS['stock'] = $stock; $PARAMS['body'] = $stock->getShortView(); return PSSmarty::template('common/stock.tpl', $PARAMS)->fetch(); }
protected function executeImpl(ArrayAdapter $params) { $action = $params->str('action'); $gallery = $params->str('gallery'); switch ($action) { case 'creategall': PsGallery::makeNew($gallery, $params->str('name')); break; case 'save': PsGallery::inst($gallery)->saveGallery($params->str('name'), $params->arr('images')); break; case 'imgadd': PsGallery::inst($gallery)->addWebImg($params->arr('img')); break; case 'imgdel': if ($params->bool('web')) { PsGallery::inst($gallery)->deleteWebImg($params->str('file')); } else { PsGallery::inst($gallery)->deleteLocalImg($params->str('file')); } break; default: json_error("Unknown action [{$action}]."); } return new AjaxSuccess(); }
protected function executeImpl(ArrayAdapter $params) { $url = $params->str('url'); $text = $params->str('text'); $note = $params->str('note'); if (!$url || !$text) { return 'Не передан url или текст'; } /* * Если пользователь не просматривал эту страницу и это не администратор - игнорируем. */ /* $wasOpened = PageOpenWatcher::isPageOpenedByUser($url, PsUser::instOrNull()); if (!$wasOpened && !AuthManager::isAuthorizedAsAdmin()) { return 'Пользователь не открывал страницу'; //--- } */ $text = UserInputTools::safeShortText($text); $note = $note ? UserInputTools::safeLongText($note) : $note; $saved = UtilsBean::inst()->saveMisprint($url, $text, $note, AuthManager::getUserIdOrNull()); if (!$saved) { return 'Запись не была сохранена'; //--- } return new AjaxSuccess(); }
protected function executeImpl(ArrayAdapter $params) { $fav = $params->bool('fav'); $type = $params->str('type'); $ident = $params->str('ident'); PopupPagesManager::inst()->toggleUserPopup($fav, $type, $ident); return new AjaxSuccess(); }
/** * Заполним ссылки на посты и, если передан параметр exists, удалим элементы, для которых нет постов. */ protected function fillTimeLineItem(LibItemDb $libItem, TimeLineItem $tlItem, ArrayAdapter $params) { $post = BlogManager::inst()->getPostByIdent($libItem->getIdent(), false); if ($post) { $tlItem->setLink(BlogManager::inst()->postUrl($post)); } return !$params->bool('exists') || !!$post; }
protected function executeImpl(ArrayAdapter $params) { $testingId = $params->int('id'); $tasks = $params->arr('tasks'); $time = $params->int('time'); TestingManager::getInstance()->updateTestingResults($testingId, $time, $tasks); $pointsGiven = PL_testing::inst()->givePoints(PsUser::inst(), $testingId); return new AjaxSuccess($pointsGiven); }
protected function executeImpl(ArrayAdapter $params) { $id = $params->int('id'); $uts = $params->int('date'); $show = $params->bool('show'); $type = $params->str('type'); $pp = Handlers::getInstance()->getPostsProcessorByPostType($type); AdminPostsBean::inst()->updateState($pp->dbBean(), $id, $uts, $show); return new AjaxSuccess(); }
/** * Метод пытается выдать очки пользователю на основе запроса к ajax {@link GivePointsCommon} */ public function givePointsByRequest(PsUser $user, ArrayAdapter $request) { $fentity = Handlers::getInstance()->getFoldedEntityByUnique($request->str('fentity')); $class = $fentity->getClassInst(); PsUtil::assertInstanceOf($class, 'PointsGiverRequest'); $request->remove('fentity'); $ctxt = new GivePointsContext($user->getId(), $fentity->getDbCode()); $class->givePointsByRequest($ctxt, $request); return $this->checkGivePointsContext($user, $ctxt); }
protected function executeImpl(ArrayAdapter $params) { $ftype = $params->str('ftype'); $fsubtype = $params->str('fsubtype'); $fident = $params->str('fident'); $zip = FoldedStorageInsts::byTypeStype($ftype, $fsubtype)->export2zip($fident); if (!$zip->isFile()) { return 'Не удалось создать архив'; } return new AjaxSuccess($zip->getRelPath()); }
protected function executeImpl(ArrayAdapter $params) { $ftype = $params->str('ftype'); $fsubtype = $params->str('fsubtype'); $fident = $params->str('fident'); $zip = Handlers::getInstance()->getFolding($ftype, $fsubtype)->export2zip($fident); if (!$zip->isFile()) { return 'Не удалось создать архив'; } return new AjaxSuccess($zip->getRelPath()); }
protected function executeImpl(ArrayAdapter $params) { $action = $params->str('action'); switch ($action) { case 'saveIni': ConfigIni::saveIniContent($params->str('scope'), $params->str('content')); break; default: raise_error("Неизвестный тип действия: [{$action}]"); } return new AjaxSuccess(); }
protected function executeImpl(ArrayAdapter $params) { $name = $params->str('name'); $type = $params->str('type'); $ident = $params->str('ident'); $rubId = $params->int('rubId'); check_condition($name, 'Name is empty'); $pp = Handlers::getInstance()->getPostsProcessorByPostType($type); $pp->getFolding()->assertExistsEntity($ident); AdminPostsBean::inst()->registerPost($pp->dbBean(), $ident, $name, $rubId); return new AjaxSuccess(); }
protected function executeImpl(ArrayAdapter $params) { $libType = $params->str('fsubtype'); $libManager = Handlers::getInstance()->getLibManager($libType); $models = $params->arr('models'); foreach ($models as $model) { $model['grup'] = $libType; $item = new LibItemDb($model); check_condition($item->getIdent(), 'Не передан идентификатор сущности'); $libManager->saveLibItem($item, AdminLibBean::inst()); } return new AjaxSuccess(); }
function smarty_function_ctrl_button($params, Smarty_Internal_Template &$template) { $adapter = ArrayAdapter::inst($params); $data = array(); if ($adapter->has('states')) { $type = 'states'; $data['states'] = explode(' ', $adapter->str('states')); } else { $data['hoverable'] = $adapter->bool('hoverable'); $data['gray'] = $adapter->bool('gray'); $data['popup'] = $adapter->bool('popup'); $data['blank'] = $adapter->bool('blank'); $data['title'] = $adapter->str('title'); $data['href'] = $adapter->str('href'); $data['action'] = $adapter->str('action'); $data['class'] = $adapter->str('class'); $data['name'] = $adapter->str(array('name', 'img', 'action')); $type = $adapter->str('type'); $type = $type ? $type : 'button'; } /* @var $buttonTpl Smarty_Internal_Template */ $buttonTpl = $template->smarty->createTemplate("discussion/controls/{$type}.tpl"); $buttonTpl->assign($data); $buttonTpl->display(); }
protected function executeImpl(ArrayAdapter $params) { $lident = $params->str(self::PARAM_LIDENT); $eident = $params->str(self::PARAM_EIDENT); if ($params->bool(TIMELINE_LOADING_MARK)) { /* * Загружаем представление элемента хронологической шкалы */ return new AjaxSuccess(TimeLineManager::inst()->getTimeLineItemPresentation($lident, $eident, $params)); } else { /* * Загружаем композицию */ return new AjaxSuccess(TimeLineManager::inst()->getTimeLineJson($lident, $params)); } }
protected function executeImpl(ArrayAdapter $params) { $action = $params->str('action'); $unique = $params->str('unique'); $folding = Handlers::getInstance()->getFoldingByUnique($unique); $res = 'OK'; switch ($action) { case 'save_list': $list = $params->str('list'); $data = $params->arr('data'); $folding->saveList($list, $data); break; default: return 'Неизвестное действие: ' . $action; } return new AjaxSuccess($res); }
/** * If a value is a string, and once trimmed is empty, `null` is returned. * * @inheritdoc */ public function read($name) { $value = parent::read($name); if (is_string($value) && trim($value) === '') { return null; } return $value; }
function smarty_function_video($params, Smarty_Internal_Template &$smarty) { $params = ArrayAdapter::inst($params); MmediaManager::getInstance()->insertVideo($params->str('dir'), $params->str('name')); if (PostFetchingContext::getInstance()->isSetted()) { PostFetchingContext::getInstance()->setHasVideo(); } }
function smarty_function_progress($params, Smarty_Internal_Template &$smarty) { $PA = ArrayAdapter::inst($params); $params['total'] = $PA->int('total'); $params['current'] = $PA->int('current'); $params['title'] = $PA->has('title') ? $PA->str('title') : 'Прогресс'; PSSmarty::template('common/progress.tpl', $params)->display(); }
function smarty_function_versein($params, Smarty_Internal_Template &$template) { $params = ArrayAdapter::inst($params); $poetIdent = $params->str('poet'); $verseIdent = $params->str('verse'); $verse = PoetsManager::inst()->getVerse($poetIdent, $verseIdent); echo $verse->getContent(); }
function smarty_function_linkup_js($params, Smarty_Internal_Template &$smarty) { $params = ArrayAdapter::inst($params); $dir = $params->str('dir'); $name = $params->str('name'); $di = DirManager::resources('scripts')->getDirItem($dir, $name, 'js'); echo $di->isFile() ? PsHtml::linkJs($di) : ''; }
protected function executeImpl(ArrayAdapter $params) { $unique = $params->str(DiscussionController::JS_DATA_UNIQUE); $upDown = $params->bool(DiscussionController::JS_DATA_UPDOWN); $entity = $params->str(DiscussionController::JS_DATA_THREAD); $theme = $params->str(self::JS_PARAM_THEME); $comment = $params->str(self::JS_PARAM_COMMENT); $parentId = $params->int(self::JS_PARAM_PARENT_ID); $controller = Handlers::getInstance()->getDiscussionController($unique); //Валидируем тему if (!$parentId && $controller->getDiscussionSettings()->isThemed()) { if (!$theme) { return 'Введите тему'; } $error = UserInputValidator::validateShortText($theme); if ($error) { return $error; } $theme = UserInputTools::safeShortText($theme); } //Валидируем комментарий if (!$comment) { return 'Введите комментарий'; } $error = UserInputValidator::validateLongText($comment); if ($error) { return $error; } $comment = UserInputTools::safeLongText($comment); $msgObj = $controller->saveMessage($entity, $parentId, $comment, $theme, PsUser::inst()); if (!$msgObj instanceof DiscussionMsg) { return 'Ошибка добавления сообщения'; } return new AjaxSuccess($controller->buildLeaf($msgObj)); }
function smarty_block_verse($params, $content, Smarty_Internal_Template &$template) { if (!$content) { return; } $params = ArrayAdapter::inst($params); $content = trim($content); $name = $params->str('name'); $year = $params->str('year'); $double = $params->bool('double'); /* * Обработка содержимого */ $verses = array(); if ($double) { $versesTmp = array(); $strings = explode("\n", $content); $verse = ''; $break = 0; foreach ($strings as $str) { $str = trim($str); if (!$str) { if ($verse) { $verse .= "\n"; ++$break; } } else { if ($break > 1) { $versesTmp[] = $verse; $verse = $str; } else { $verse .= "\n{$str}"; } $break = 0; } } if ($verse) { $versesTmp[] = $verse; } $double = count($versesTmp) > 1; if ($double) { for ($index = 0; $index < count($versesTmp); $index = $index + 2) { $v1 = nl2br(trim($versesTmp[$index])); $v2 = array_key_exists($index + 1, $versesTmp) ? nl2br(trim($versesTmp[$index + 1])) : ''; $verses[] = array($v1, $v2); } } } /* @var $verseTpl Smarty_Internal_Template */ $verseTpl = $template->smarty->createTemplate('common/verse.tpl'); $verseTpl->assign('b_double', $double); $verseTpl->assign('c_name', $name); $verseTpl->assign('c_body', nl2br($content)); $verseTpl->assign('verses', $verses); $verseTpl->assign('c_year', $year); $verseTpl->display(); }
function smarty_function_versein($params, Smarty_Internal_Template &$template) { $params = ArrayAdapter::inst($params); $poetIdent = $params->str('poet'); $verseIdent = $params->str('verse'); $verse = PoetsManager::inst()->getVerse($poetIdent, $verseIdent); echo $verse->getContent(); FoldedContextWatcher::getInstance()->setDependsOnEntity($verse->getFoldedEntity()); }
protected function executeImpl(ArrayAdapter $params) { $id = $params->str('id'); $type = $params->str('type'); $action = $params->str('action'); switch ($action) { case 'ccache': PSCache::inst()->clean(); break; case 'toggledev': PsGlobals::inst()->getProp('PS_PRODUCTION')->setValue(!PS_PRODUCTION); PsGlobals::inst()->save2file(); break; default: return 'Unknown action'; } return new AjaxSuccess(); }
function smarty_function_linkup_css($params, Smarty_Internal_Template &$smarty) { $params = ArrayAdapter::inst($params); $dir = $params->str('dir'); $name = $params->str('name'); $media = $params->str('media'); $di = DirManager::resources('css')->getDirItem($dir, $name, 'css'); echo $di->isFile() ? PsHtml::linkCss($di, $media) : ''; }