Esempio n. 1
0
 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}'");
 }
Esempio n. 2
0
 protected function executeImpl(ArrayAdapter $params)
 {
     $method = $params->str('method');
     $params = $params->arr('params');
     TestManagerCaller::execute($method, $params);
     return new AjaxSuccess();
 }
Esempio n. 3
0
 /**
  * @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));
 }
Esempio n. 4
0
 public function doProcess(ArrayAdapter $params)
 {
     $postId = $params->int('postId');
     $postType = $params->str('postType');
     $pp = Handlers::getInstance()->getPostsProcessorByPostType($postType);
     $this->postCP = $pp->getPostContentProvider($postId);
 }
Esempio n. 5
0
 /**
  * Метод, вызываемый блоком
  * {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();
 }
Esempio n. 6
0
 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();
 }
Esempio n. 7
0
 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();
 }
Esempio n. 8
0
 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();
 }
Esempio n. 9
0
 /**
  * Заполним ссылки на посты и, если передан параметр 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;
 }
Esempio n. 10
0
 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);
 }
Esempio n. 11
0
 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();
 }
Esempio n. 12
0
 /**
  * Метод пытается выдать очки пользователю на основе запроса к 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);
 }
Esempio n. 13
0
 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());
 }
Esempio n. 14
0
 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());
 }
Esempio n. 15
0
 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();
 }
Esempio n. 16
0
 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();
 }
Esempio n. 17
0
 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();
 }
Esempio n. 18
0
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();
}
Esempio n. 19
0
 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));
     }
 }
Esempio n. 20
0
 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);
 }
Esempio n. 21
0
 /**
  * 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;
 }
Esempio n. 22
0
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();
    }
}
Esempio n. 23
0
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();
}
Esempio n. 24
0
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();
}
Esempio n. 25
0
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) : '';
}
Esempio n. 26
0
 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));
 }
Esempio n. 27
0
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();
}
Esempio n. 28
0
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());
}
Esempio n. 29
0
 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();
 }
Esempio n. 30
0
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) : '';
}