示例#1
0
 public function buildContent()
 {
     $RQ = RequestArrayAdapter::inst();
     $mode = $RQ->str('mode', self::MODE_SPRITES_LIST);
     $name = $RQ->str('name');
     $navigation = AdminPageNavigation::inst();
     $sprites = CssSpritesManager::getAllDirsSptites();
     switch ($mode) {
         case self::MODE_SPRITE:
             if (!array_key_exists($name, $sprites)) {
                 $mode = self::MODE_SPRITES_LIST;
                 break;
             }
             $smartyParams['sprite'] = CssSprite::inst($name)->rebuild();
             break;
     }
     switch ($mode) {
         case self::MODE_SPRITES_LIST:
             $navigation->setCurrent('Список спрайтов');
             break;
         case self::MODE_SPRITE:
             $navigation->addPath(self::urlSpritesList(), 'Список спрайтов');
             $navigation->setCurrent($name);
             break;
     }
     $smartyParams['mode'] = $mode;
     $smartyParams['name'] = $name;
     $smartyParams['sprites'] = $sprites;
     return $this->getFoldedEntity()->fetchTpl($smartyParams);
 }
示例#2
0
 public function buildContent()
 {
     $navigation = AdminPageNavigation::inst();
     $PARAMS['mode'] = self::MODE_TABLES_LIST;
     /*
      * Просмотр содержимого таблицы
      */
     $table = RequestArrayAdapter::inst()->str('table');
     if ($table) {
         $PARAMS['mode'] = self::MODE_TABLE_VIEW;
         $table = PsTable::inst($table);
         $PARAMS['table'] = $table;
         $PARAMS['rows'] = $table->getRows();
         $navigation->addPath(self::urlTables(), 'Настройки');
         $navigation->setCurrent('Просмотр ' . $table->getName());
     }
     /*
      * Просмотр и настройка всех таблиц
      */
     if ($PARAMS['mode'] == self::MODE_TABLES_LIST) {
         $PARAMS['errors'] = PsDbIniHelper::validateAll();
         foreach (ConfigIni::getAllowedScopes() as $scope) {
             $PARAMS['data'][$scope] = TableExporter::inst()->getTables($scope);
             $PARAMS['data']["{$scope}.ini"] = DbIni::getIniContent($scope);
         }
         $navigation->setCurrent('Настройки');
     }
     echo $this->getFoldedEntity()->fetchTpl($PARAMS);
 }
示例#3
0
 public function buildContent()
 {
     $navigation = AdminPageNavigation::inst();
     $PARAMS['mode'] = self::MODE_TABLES_LIST;
     foreach (ConfigIni::getAllowedScopes() as $scope) {
         $PARAMS['data']["{$scope}.ini"] = ConfigIni::getIniContent($scope);
     }
     $navigation->setCurrent('Настройки');
     echo $this->getFoldedEntity()->fetchTpl($PARAMS);
 }
示例#4
0
 public function buildContent()
 {
     $navigation = AdminPageNavigation::inst();
     $RQ = GetArrayAdapter::inst();
     $AL = PsProfiler::controller();
     $PARAMS['enabled'] = PROFILING_ENABLED;
     $mode = null;
     if ($RQ->has('profiler')) {
         $mode = self::MODE_PROFILER;
         $profiler = $RQ->str('profiler');
         $PARAMS['profilers'] = $AL->getStats($profiler);
         $navigation->addPath(self::url(), 'Профайлеры');
         $navigation->setCurrent($profiler);
     }
     if (!$mode) {
         $mode = self::MODE_LIST;
         $PARAMS['profilers'] = $AL->getStats();
         $navigation->setCurrent('Профайлеры');
     }
     $PARAMS['mode'] = $mode;
     echo $this->getFoldedEntity()->fetchTpl($PARAMS);
 }
示例#5
0
 public function buildContent()
 {
     $navigation = AdminPageNavigation::inst();
     $ftype = LibResources::LIB_FOLDING_TYPE;
     $fsubtype = RequestArrayAdapter::inst()->str('fsubtype');
     $fident = RequestArrayAdapter::inst()->str('fident');
     $mode = !$fsubtype ? self::MODE_FOLDINGS_LIST : self::MODE_FOLDING_CONTENT;
     $PARAMS['error'] = null;
     switch ($mode) {
         case self::MODE_FOLDINGS_LIST:
             $PARAMS['foldings'] = array();
             /* @var $manager FoldedResources */
             foreach (Handlers::getInstance()->getLibManagers() as $manager) {
                 $PARAMS['foldings'][] = array('name' => $manager->getEntityName() . ' (' . $manager->getUnique() . ')', 'url' => $this->url(array('fsubtype' => $manager->getFoldingSubType())));
             }
             $navigation->setCurrent('Список библиотек');
             break;
         case self::MODE_FOLDING_CONTENT:
             $manager = Handlers::getInstance()->getTimeLineFolding($fsubtype);
             $PARAMS['tlbfe'] = $manager->getTLBuilderFoldedEntity();
             $PARAMS['folding']['name'] = $manager->getEntityName();
             $PARAMS['folding']['fsubtype'] = $manager->getFoldingSubType();
             //TODO - вынести
             $items = AdminLibBean::inst()->getAllNoFetch($fsubtype);
             $PARAMS['folding']['data'] = array();
             /* @var $item LibItemDb */
             foreach ($items as $item) {
                 $item['editurl'] = AP_APFoldingEdit::urlFoldingEdit(FoldedResources::unique($ftype, $fsubtype, $item['ident']));
                 $PARAMS['folding']['data'][] = $item;
             }
             $navigation->addPath($this->url(), 'Список библиотек');
             $navigation->setCurrent($manager->getEntityName());
             break;
     }
     $PARAMS['mode'] = $mode;
     echo $this->getFoldedEntity()->fetchTpl($PARAMS);
 }
示例#6
0
 public function buildContent()
 {
     $navigation = AdminPageNavigation::inst();
     $RQ = GetArrayAdapter::inst();
     $mode = $RQ->get('mode', self::MODE_LIST);
     $PARAMS['mode'] = $mode;
     $PARAMS['galls'] = PsGallery::allInsts();
     switch ($mode) {
         case self::MODE_LIST:
             $navigation->setCurrent('Все галереи');
             break;
         case self::MODE_LAZY:
             $navigation->addPath(self::urlList(), 'Все галереи');
             $navigation->setCurrent('Поздняя загрузка');
             break;
         case self::MODE_GALL:
             $PARAMS['info'] = PsGallery::inst($RQ->str('gall'));
             $PARAMS['items'] = $PARAMS['info']->getAllGalleryItems();
             $navigation->addPath(self::urlList(), 'Все галереи');
             $navigation->setCurrent($RQ->str('gall'));
             break;
     }
     echo $this->getFoldedEntity()->fetchTpl($PARAMS);
 }
示例#7
0
 public function buildContent()
 {
     $navigation = AdminPageNavigation::inst();
     $RQ = RequestArrayAdapter::inst();
     /** @var FoldedEntity */
     $entity = FoldedStorageInsts::getFoldedEntityByUnique($RQ->str('entity'), false);
     /** @var FoldedResources */
     $folding = $entity ? $entity->getFolding() : FoldedStorageInsts::byUnique($RQ->str('folding'), false);
     $mode = $RQ->str('mode', self::MODE_FOLDINGS_LIST);
     $PARAMS['mode'] = $mode;
     $PARAMS['error'] = null;
     $PARAMS['entity'] = $entity;
     $PARAMS['folding'] = $folding;
     $PARAMS['foldings'] = FoldedStorageInsts::listFoldings();
     $ftype = $folding ? $folding->getFoldingType() : '';
     $fsubtype = $folding ? $folding->getFoldingSubType() : '';
     $fident = $entity ? $entity->getIdent() : '';
     $flist = $RQ->str('list');
     $ftplpath = $RQ->str('tplpath');
     //РЕДИРЕКТ
     if ($mode != self::MODE_FOLDINGS_LIST && !$folding) {
         PsUtil::redirectTo(self::urlFoldingsList());
     }
     //ВЫПОЛНЕНИЕ
     switch ($mode) {
         //СПИСОК ВСЕХ ФОЛДИНГОВ
         case self::MODE_FOLDINGS_LIST:
             $navigation->setCurrent('Список фолдингов');
             break;
             //СПИСОК СУЩНОСТЕЙ ДАННОГО ФОЛДИНГА
         //СПИСОК СУЩНОСТЕЙ ДАННОГО ФОЛДИНГА
         case self::MODE_FOLDING_CONTENT:
             $newIdent = $folding->getNextEntityIdent();
             //Форма создания
             $FORM = FORM_AdminFoldingCreateForm::getInstance();
             $FORM->setHidden('folding', $folding->getUnique());
             $FORM->setParam(FORM_AdminFoldingCreateForm::PARAM_NEW_FOLDING_IDENT, $newIdent);
             $FORM->setSmartyParam('folding', $folding);
             /* @var $TABLE PsTable */
             $FORM->setSmartyParam('rec', $folding->getDbRec4Entity($newIdent));
             //Форма загрузки
             $FORM = FORM_AdminFoldingUploadForm::getInstance();
             $FORM->setHidden('folding', $folding->getUnique());
             $navigation->addPath(self::urlFoldingsList(), 'Список фолдингов');
             $navigation->setCurrent($folding->getEntityName());
             break;
         case self::MODE_FOLDING_LIST_EDIT:
             $PARAMS['list'] = $flist;
             //TODO - выкинуто
             //$PARAMS['listIdents'] = $folding->getPossibleListIdents($flist);
             $navigation->addPath(self::urlFoldingsList(), 'Список фолдингов');
             $navigation->addPath(self::urlFoldingEntitys($folding), $folding->getEntityName());
             $navigation->setCurrent('Редактирование списка ' . $flist);
             break;
         case self::MODE_FOLDING_TPLS_LIST:
             $PARAMS['tplsList'] = $folding->getAllInfoTpls($fident);
             $navigation->addPath(self::urlFoldingsList(), 'Список фолдингов');
             $navigation->addPath(self::urlFoldingEntitys($folding), $folding->getEntityName());
             $navigation->addPath(self::urlFoldingEdit($entity), $fident);
             $navigation->setCurrent('Информационные шаблоны');
             break;
         case self::MODE_FOLDING_TPL_EDIT:
             $PARAMS['tplsList'] = $folding->getAllInfoTpls($fident);
             $tpl = $folding->getInfoTpl($entity->getIdent(), $ftplpath);
             $PARAMS['tpl'] = $tpl;
             //Отфетчим содержимое, извлеча из запроса те параметры, которые начинаются на sm_
             $PARAMS['content'] = $tpl->fetchNoCache($RQ->getByKeyPrefix('sm_', true));
             $FORM = FORM_AdminFoldingInfoTplEditForm::getInstance();
             $FORM->setHidden('fentity', $entity->getUnique());
             $FORM->setHidden('ftpl', $tpl->getInfoRelPath());
             $FORM->setSmartyParam('tpl', $tpl->getDirItem()->getFileContents());
             $navigation->addPath(self::urlFoldingsList(), 'Список фолдингов');
             $navigation->addPath(self::urlFoldingEntitys($folding), $folding->getEntityName());
             $navigation->addPath(self::urlFoldingEdit($entity), $fident);
             $navigation->addPath(self::urlFoldingInfoTplsList($entity), 'Информационные шаблоны');
             $navigation->setCurrent($tpl->getInfoRelPath());
             break;
         case self::MODE_FOLDING_EDIT:
             //Ссылка для скачивания спрайтов
             $download['class'] = 'download';
             $download['data'] = array('ftype' => $ftype, 'fsubtype' => $fsubtype, 'fident' => $fident);
             $PARAMS['download'] = PsHtml::a($download, '[Скачать]');
             $spriteImg = $folding->getSprite($fident);
             $spriteImg = $spriteImg && $spriteImg->getImgDi()->isImg() ? $spriteImg->getImgDi() : null;
             $PARAMS['sprite'] = $spriteImg ? PsHtml::a(array('href' => $spriteImg->getRelPath()), '[Спрайт]', true) : null;
             //Информационные шаблоны
             $PARAMS['patterns'] = '';
             if (count($folding->getInfoDiList($fident))) {
                 $patterns['href'] = self::urlFoldingInfoTplsList($entity);
                 $PARAMS['patterns'] = PsHtml::a($patterns, '[Инфо шаблоны]');
             }
             $PARAMS['info'] = '';
             try {
                 $prew = $folding->getFoldedEntityPreview($fident);
                 if (is_array($prew)) {
                     $PARAMS['info'] = array_get_value('info', $prew);
                     $PARAMS['content'] = array_get_value('content', $prew);
                 } else {
                     $PARAMS['content'] = $prew;
                 }
             } catch (Exception $e) {
                 $PARAMS['content'] = ExceptionHandler::getHtml($e);
             }
             /*
              * Подготовим форму редактирования фолдинга
              */
             $FORM = FORM_AdminFoldingEditForm::getInstance();
             /* hiddens */
             $FORM->setHidden('ftype', $ftype);
             $FORM->setHidden('fsubtype', $fsubtype);
             $FORM->setHidden('fident', $fident);
             $rtypes = $folding->getAllowedResourceTypes();
             /* fields */
             foreach ($rtypes as $rtype) {
                 $FORM->setParam($rtype, $folding->getResourceDi($fident, $rtype)->getFileContents(false));
             }
             /* smarty */
             $FORM->setSmartyParam('types', $rtypes);
             $FORM->setSmartyParam('covers', $folding->isImagesFactoryEnabled());
             /* table */
             $TABLE = null;
             $DBROW = null;
             if ($folding->getTableName()) {
                 $TABLE = TableExporter::inst()->getTable($folding->getTableName());
                 //TODO - выкинуто
                 //$DBROW = $TABLE->getFoldingDbRec($folding, $fident);
             }
             $FORM->setSmartyParam('table', $TABLE);
             $FORM->setSmartyParam('row', $DBROW);
             if (!$DBROW) {
                 $FORM->removeButton(FORM_AdminFoldingEditForm::BUTTON_DELETE_ALL);
             }
             /*
              * Навигация
              */
             $navigation->addPath(self::urlFoldingsList(), 'Список фолдингов');
             $navigation->addPath(self::urlFoldingEntitys($folding), $folding->getEntityName());
             $navigation->setCurrent($fident);
             break;
     }
     PsDefines::setReplaceFormulesWithImages(false);
     echo $this->getFoldedEntity()->fetchTpl($PARAMS);
 }
示例#8
0
 public function buildContent()
 {
     PsDefines::setReplaceFormulesWithImages(false);
     $navigation = AdminPageNavigation::inst();
     /*
      * Инициализируем необходимые менеджеры
      */
     $TE = TableExporter::inst();
     $RQ = GetArrayAdapter::inst();
     $FORM = FORM_RecEditForm::getInstance();
     $TABLES = PsTable::configured();
     /*
      * Инициализируем параметры, которые нужно будет передать smarty
      */
     $PARAMS['mode'] = null;
     $PARAMS['table'] = null;
     $PARAMS['error'] = null;
     $PARAMS['errors'] = PsDbIniHelper::validateAll();
     /*
      * Обработаем форму
      */
     try {
         if ($FORM->isValid4Process()) {
             $this->processForm($FORM->getData());
         } else {
             if ($FORM->isErrorOccurred()) {
                 $PARAMS['error'] = PsHtml::divErr($FORM->getError());
             }
         }
     } catch (Exception $e) {
         $PARAMS['error'] = ExceptionHandler::getHtml($e);
     }
     /*
      * Обработаем параметры и определим режим работы
      */
     $MODE = $RQ->str('mode', self::MODE_TABLES_LIST);
     /** @var PsTable */
     $TABLE = null;
     // Таблица
     $ROW = null;
     // Редактируемая строка
     switch ($MODE) {
         case self::MODE_ROW_ADD:
             //Если передан фолдинг, то подставим в форму создания его параметры
             $folding = Handlers::getInstance()->getFolding($RQ->str('ftype'), $RQ->str('fsubtype'), false);
             $fident = $RQ->str('fident');
             if ($folding && $folding->getTableName() && $fident) {
                 $TABLE = $TE->getTable($folding);
                 $ROW = $folding->getDbRec4Entity($fident);
                 break;
             }
             $TABLE = PsTable::inst($RQ->str('table'));
             /*
              * Нам не удалось определить внешний вид создаваемой строки, 
              * но если у данной таблицы один фолдинг - возмём вид строки у него.
              */
             $folding = $TABLE->getSingleFolding();
             $ROW = $folding ? $folding->getDbRec4Entity($folding->getNextEntityIdent()) : null;
             break;
         case self::MODE_TABLE_ROWS:
         case self::MODE_TABLE_SQL:
         case self::MODE_TABLE_ARR:
         case self::MODE_ROW_EDIT:
         case self::MODE_ROW_DELETE:
             $TABLE = PsTable::inst($RQ->str('table'));
             switch ($MODE) {
                 case self::MODE_ROW_EDIT:
                 case self::MODE_ROW_DELETE:
                     $ROW = $TABLE->getRow($RQ->int($TABLE->getPk()->getName()));
                     break;
             }
             break;
         case self::MODE_INSERTS:
             //Nothing to do
             break;
         default:
             //Защитимся от некорректного значения параметра 'mode'
             $MODE = self::MODE_TABLES_LIST;
             break;
     }
     $PARAMS['mode'] = $MODE;
     $PARAMS['table'] = $TABLE;
     /*
      * ВЫПОЛНЯЕМ ОБРАБОТКУ
      */
     switch ($MODE) {
         case self::MODE_TABLES_LIST:
             $PARAMS['tables'] = $TABLES;
             $navigation->setCurrent('Список таблиц');
             break;
         case self::MODE_INSERTS:
             $PARAMS['tables'] = $TABLES;
             $navigation->addPath(self::urlTables(), 'Список таблиц');
             $navigation->setCurrent('Вставка данных');
             break;
         case self::MODE_TABLE_ROWS:
             $PARAMS['rows'] = $TABLE->getRows();
             $PARAMS['addurl'] = self::urlRecAdd($TABLE);
             $PARAMS['modified'] = $TABLE->getModifiedRows();
         case self::MODE_TABLE_SQL:
         case self::MODE_TABLE_ARR:
             $navigation->addPath(self::urlTables(), 'Список таблиц');
             $navigation->setCurrent($TABLE->getName());
             break;
         default:
             switch ($MODE) {
                 /*
                  * Помимо действий над записью, мы ещё раздиляем действия над фолдингами 
                  * (если они есть для таблицы). Поэтому мы установм: 
                  * FormAction - для типа редактирования записи
                  * FormButton - для типа работы с фолдингом
                  */
                 case self::MODE_ROW_ADD:
                     $FORM->setFormAction(PS_ACTION_CREATE);
                     $FORM->setButtons(FORM_RecEditForm::BUTTON_CREATE);
                     if ($TABLE->hasFoldings()) {
                         $FORM->addButton(FORM_RecEditForm::BUTTON_CREATEF);
                     }
                     $navigation->setCurrent('Создание записи');
                     break;
                 case self::MODE_ROW_EDIT:
                     $FORM->setFormAction(PS_ACTION_EDIT);
                     $FORM->setButtons(FORM_RecEditForm::BUTTON_EDIT);
                     if ($TABLE->hasFoldings() && !$TABLE->hasFoldingEntity4DbRec($ROW, true)) {
                         $FORM->addButton(FORM_RecEditForm::BUTTON_EDITF);
                     }
                     $navigation->setCurrent('Редактирование записи');
                     break;
                 case self::MODE_ROW_DELETE:
                     $FORM->setFormAction(PS_ACTION_DELETE);
                     $FORM->setButtons(FORM_RecEditForm::BUTTON_DELETE);
                     if ($TABLE->hasFoldingEntity4DbRec($ROW, true)) {
                         $FORM->addButton(FORM_RecEditForm::BUTTON_DELETEF);
                     }
                     $navigation->setCurrent('Удаление записи');
                     break;
                 default:
                     raise_error("Неизвестный режим: [{$MODE}]");
             }
             $FORM->setHidden('table', $TABLE->getName());
             $FORM->setSmartyParam('table', $TABLE);
             $FORM->setSmartyParam('rec', $ROW);
             $navigation->addPath(self::urlTables(), 'Список таблиц');
             $navigation->addPath(self::urlTableRows($TABLE), $TABLE->getName());
             break;
     }
     echo $this->getFoldedEntity()->fetchTpl($PARAMS);
 }