本文整理汇总了PHP中ExceptionHandler::getHtml方法的典型用法代码示例。如果您正苦于以下问题:PHP ExceptionHandler::getHtml方法的具体用法?PHP ExceptionHandler::getHtml怎么用?PHP ExceptionHandler::getHtml使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExceptionHandler
的用法示例。
在下文中一共展示了ExceptionHandler::getHtml方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getContent
/**
* Метод безопасно получает контент.
* В случае возникновения ошибки возвращает её стек.
*/
public static function getContent($objOrTpl, $method = 'buildContent')
{
$isCallable = is_callable($objOrTpl);
$isTpl = $objOrTpl instanceof Smarty_Internal_Template;
if (!$isCallable && !$isTpl) {
check_condition(is_object($objOrTpl), 'Not object passed to ' . __FUNCTION__);
PsUtil::assertMethodExists($objOrTpl, $method);
}
$returned = null;
$flushed = null;
ob_start();
ob_implicit_flush(false);
try {
if ($isCallable) {
$returned = call_user_func($objOrTpl);
} else {
if ($isTpl) {
$returned = $objOrTpl->fetch();
} else {
$returned = $objOrTpl->{$method}();
}
}
} catch (Exception $ex) {
ob_end_clean();
return ExceptionHandler::getHtml($ex);
}
$flushed = ob_get_contents();
ob_end_clean();
return isEmpty($returned) ? isEmpty($flushed) ? null : $flushed : $returned;
}
示例2: getFoldedEntityPreview
public function getFoldedEntityPreview($ident)
{
$type = $this->pp->getPostType();
$postCP = $this->pp->getPostContentProviderByIdent($ident);
$hasInDb = is_object($postCP);
$post = null;
if ($hasInDb) {
$post = $postCP->getPost();
} else {
//Сделаем его форсированно загружаемым из шаблона
$virtualPostParams['b_tpl'] = 1;
$post = $this->pp->getVirtualPost($ident, $virtualPostParams);
$postCP = ContentProviderFactory::getContentProvider($post);
}
//Накачиваем страницу
$PARAMS = array('type' => $type, 'full' => '', 'short' => '', 'error' => '');
try {
$PARAMS['full'] = $postCP->getPostContent()->getContent();
$PARAMS['short'] = $postCP->getPostContentShowcase()->getContent();
} catch (Exception $ex) {
$PARAMS['error'] = ExceptionHandler::getHtml($ex);
}
$info = $hasInDb ? $this->pp->postHref($post, null, null, null, true) : PsHtml::gray($post->isVirtual() ? 'Пост не зарегистрирован в базе' : 'Пост зарегистрирован в базе, но не виден пользователю');
$content = PSSmarty::template('post/folded_prev.tpl', $PARAMS)->fetch();
return array('info' => $info, 'content' => $content);
}
示例3: getContent
/**
* Метод получает фактический контект для всплывающей страницы.
* Сама страница может вернуть или IdentPageFilling, и тогда содержимое
* будет обработано за неё. Или непосредственно IdentPageContent,
* если ей самой нужно обработать содержимое (например - акции).
*
* @return ClientBoxContent
*/
public final function getContent()
{
if ($this->cbContent) {
return $this->cbContent;
}
$this->checkAccess();
$this->profilerStart(__FUNCTION__);
$filling = null;
try {
$filling = $this->getClientBoxFilling();
check_condition($filling instanceof ClientBoxFilling, "Элемент [{$this->ident}] обработан некорректно");
} catch (Exception $ex) {
$this->profilerStop(false);
return $this->cbContent = new ClientBoxContent(PsHtml::divErr(ExceptionHandler::getHtml($ex)));
}
//Построим заголовок
$HEAD_PARAMS['class'][] = 'box-header';
if ($filling->isCover()) {
$HEAD_PARAMS['class'][] = 'covered';
$HEAD_PARAMS['style']['background-image'] = 'url(' . $this->foldedEntity->getCover()->getRelPath() . ')';
}
$HEAD_CONTENT = $filling->getHref() ? PsHtml::a(array('href' => $filling->getHref()), $filling->getTitle()) : $filling->getTitle();
$HEAD = PsHtml::html2('h3', $HEAD_PARAMS, $HEAD_CONTENT);
$BOX_CONTENT = $this->foldedEntity->fetchTplWithResources($filling->getSmartyParams());
$BOX = PsHtml::div(array(), $HEAD . $BOX_CONTENT);
$this->profilerStop();
return $this->cbContent = new ClientBoxContent($BOX, $filling->getJsParams());
}
示例4: getFoldedEntityPreview
public function getFoldedEntityPreview($ident)
{
$type = $this->rp->getPostType();
$rubricCP = $this->rp->getRubricContentProviderByIdent($ident);
$hasInDb = is_object($rubricCP);
$rubric = null;
if ($hasInDb) {
$rubric = $rubricCP->getRubric();
} else {
//Сделаем его форсированно загружаемым из шаблона
$virtualRubricParams['b_tpl'] = 1;
$rubric = $this->rp->getVirtualRubric($ident, $virtualRubricParams);
$rubricCP = ContentProviderFactory::getContentProvider($rubric);
}
//Накачиваем страницу
$PARAMS = array('type' => $type, 'full' => '', 'error' => '');
try {
$PARAMS['full'] = $rubricCP->getContent();
} catch (Exception $ex) {
$PARAMS['error'] = ExceptionHandler::getHtml($ex);
}
$info = $hasInDb ? $this->rp->rubricHref($rubric) : PsHtml::gray($rubric->isVirtual() ? 'Рубрика не зарегистрирована в базе' : 'Рубрика зарегистрирована в базе, но не видна пользователю');
$content = PSSmarty::template('rubric/folded_prev.tpl', $PARAMS)->fetch();
return array('info' => $info, 'content' => $content);
}
示例5: buildImpl
/**
* Основной метод, выполняющий всю работу.
* К этому моменту мы уже определили плагин и установили контекст.
* Остаётся только построить сам плагин.
*/
private function buildImpl(BasePlugin $plugin, $content, ArrayAdapter $params)
{
//Если $content === null, то мы отображаем плагин в popup окне
//В противном случае запросим УРЛ для перехода к popup-виду плагина
$popupUrl = $content === null ? null : PopupPagesManager::inst()->getPluginUrl($plugin);
$ident = $plugin->getIdent();
$content = trim($content);
try {
$pluginContent = $plugin->getPluginContent($content, $params, PluginFetchingContext::getInstance());
if (PostFetchingContext::getInstance()->isSetted()) {
PostFetchingContext::getInstance()->registerPlugin($ident, $pluginContent->getPostData());
}
$tpl = PSSmarty::template('psplugins/BASE.tpl');
$tpl->assign('url', $popupUrl);
$tpl->assign('ident', $ident);
$tpl->assign('content', $this->getResourcesLinks($ident, $pluginContent->getContent()));
return $tpl->fetch();
} catch (Exception $e) {
//Произошла ошибка... От нас требуется вернуть её текстовое представление,
//так как самое важное - отключить контекст выполнения плагина.
return ExceptionHandler::getHtml($e);
}
}
示例6: buildContent
//.........这里部分代码省略.........
$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);
}
示例7: buildPage
public final function buildPage(array $buildParams = array())
{
header('Content-Type: text/html; charset=utf-8');
ExceptionHandler::registerPretty();
//Запросим адаптер, чтобы сбросить параметры в сессии
UnloadArrayAdapter::inst();
// Подготовим необходимые классы
$CTXT = PageContext::inst();
$PAGE = $CTXT->getPage();
$BUILDER = $this->getPageBuilder($CTXT->getPageType());
$PROFILER = $BUILDER->getProfiler();
$RESOURCES = null;
$TITLE = null;
$CONTENT = null;
if ($PROFILER) {
// Начинаем профилирование
$PROFILER->start($CTXT->getRequestUrl());
}
try {
//Подготовим объекты, которые будем передавать построителю страницы
$RQ_PARAMS = RequestArrayAdapter::inst();
$BUILD_PARAMS = ArrayAdapter::inst($buildParams);
$BUILDER_CTXT = PageBuilderContext::getInstance();
//Стартуем контекст
$BUILDER_CTXT->setContextWithFoldedEntity($BUILDER->getFoldedEntity());
//Вызываем предварительную обработку страницы
$BUILDER->preProcessPage($CTXT, $RQ_PARAMS, $BUILD_PARAMS);
// Оповещаем слушателей
/* @var $listener PagePreloadListener */
foreach (Handlers::getInstance()->getPagePreloadListeners() as $listener) {
$listener->onPagePreload($PAGE);
}
//Билдер строит страницу, наполняя контекст. Нам от него нужны будут только данные из контекста
$PARAMS = $BUILDER->buildPage($CTXT, $BUILDER_CTXT, $RQ_PARAMS, $BUILD_PARAMS);
//Остановим контекст
$BUILDER_CTXT->dropContext();
//Загрузим параметры
$TITLE = $PARAMS->getTitle();
$CONTENT = $PARAMS->getContent();
// Подключаем все необходимые ресурсы
$RESOURCES = $this->buildResources($PARAMS, $CTXT);
//Проведём финализацию страницы, чтобы различные менеджеры могли добавить к ней свои данные
$CONTENT = PageFinaliserFoldings::finalize($this->LOGGER, $CONTENT);
} catch (Exception $ex) {
$TITLE = trim($TITLE) . ' (произошла ошибка)';
$CONTENT = ExceptionHandler::getHtml($ex);
}
//Непосредственное построение страницы.
$PAGE_PARAMS['RESOURCES'] = $RESOURCES;
$PAGE_PARAMS['TITLE'] = $TITLE;
$PAGE_PARAMS['CONTENT'] = $CONTENT;
//ПОДСТАВЛЯЕМ ВСЕ ПАРАМЕТРЫ СТРАНИЦЫ В БАЗОВЫЙ ШАБЛОН
$PAGE_CONTENT = PSSmarty::template('page/page_pattern.tpl', $PAGE_PARAMS)->fetch();
$this->LOGGER->infoBox('HTML PAGE', $PAGE_CONTENT);
//ФИНАЛИЗАЦИЯ СТРАНИЦЫ - ВЫЧИСЛИМ РЕСУРСЫ, КОТОРЫЕ НУЖНО ОТКЛЮЧИТЬ
$PAGE_CONTENT = PageFinaliserRegExp::finalize($this->LOGGER, $PAGE_CONTENT);
//НОРМАЛИЗАЦИЯ СТРАНИЦЫ - УДАЛИМ ДВОЙНЫЕ ПРОБЕЛЫ И ПЕРЕНОСЫ
if (PsDefines::isNormalizePage()) {
$PAGE_CONTENT = PageNormalizer::finalize($this->LOGGER, $PAGE_CONTENT);
}
//ВСТАВИМ ASIS ПАРАМЕТРЫ, ТАК КАК БОЛЕЕ SMARTY ФИЛЬТРЫ ВЫЗЫВАТЬСЯ НЕ БУДУТ
$PAGE_CONTENT = $this->replaceAsIsValues($PAGE_CONTENT);
$this->LOGGER->infoBox('PAGE WITH ASIS REPLACED', $PAGE_CONTENT);
//BOOOM :)
echo $PAGE_CONTENT;
if ($PROFILER) {
// Заканчиваем профилирование
$PROFILER->stop();
PageOpenWatcher::updateUserPageWatch($CTXT->getRequestUrl());
}
}
示例8: buildContent
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:
//.........这里部分代码省略.........