本文整理汇总了PHP中Context::canDebug方法的典型用法代码示例。如果您正苦于以下问题:PHP Context::canDebug方法的具体用法?PHP Context::canDebug怎么用?PHP Context::canDebug使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Context
的用法示例。
在下文中一共展示了Context::canDebug方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: isLocked
private static function isLocked(Context $ctx, $enable_admin = true)
{
$conf = $ctx->config->get('modules/maintenance');
if (!empty($conf['state']) and 'closed' === $conf['state']) {
if (!$enable_admin) {
return true;
}
if (!$ctx->canDebug()) {
$query = $ctx->query();
if ('admin' != $query and 0 !== strpos($query, 'admin/')) {
return true;
}
}
}
return false;
}
示例2: on_get_dump
/**
* Вывод содержимого объекта.
*/
public static function on_get_dump(Context $ctx)
{
$filter = array('id' => $ctx->get('node'));
if (!$ctx->canDebug()) {
$filter['deleted'] = 0;
}
if ($ctx->get('raw')) {
$node = Node::load($filter, $ctx->db);
$temp = $node->{'never should this field exist'};
mcms::debug($node);
} else {
$xml = Node::findXML($filter, $ctx->db);
if (empty($xml)) {
throw new RuntimeException(t('Для этого документа нет XML представления (такого быть не должно), см. <a href="@url">сырой вариант</a>.', array('@url' => '?q=node/' . $filter['id'] . '/dump&raw=1')));
}
$res = new Response('<?xml version="1.0"?>' . $xml, 'text/xml');
$res->send();
}
throw new ForbiddenException();
}
示例3: checkperm
public static function checkperm(Context $ctx, array $pathinfo)
{
if (!empty($pathinfo['anonymous'])) {
return;
}
if (!$ctx->user->id) {
throw new UnauthorizedException();
}
if ($gid = $ctx->config->get('modules/admin/requiregroup')) {
if (!$ctx->user->hasGroups(array($gid))) {
throw new ForbiddenException();
}
}
if (!empty($pathinfo['perms'])) {
if ('debug' == $pathinfo['perms']) {
$result = $ctx->canDebug();
} else {
list($mode, $type) = explode(',', $pathinfo['perms']);
$result = $ctx->user->hasAccess($mode, $type);
}
if (!$result) {
throw new ForbiddenException();
}
}
}
示例4: render
/**
* Шаблонизация виджета.
*
* @return string результат работы шаблона или NULL.
*/
public final function render(Context $ctx, array $params)
{
try {
$this->ctx = $ctx;
$time = microtime(true);
if (!is_array($options = $this->getRequestOptions($this->ctx, $params))) {
return "<!-- widget {$this->name} halted. -->";
}
if (array_key_exists('#cache', $options) and empty($options['#cache'])) {
$ckey = null;
} elseif ($ctx->get('nocache') and $ctx->canDebug()) {
$ckey = null;
} else {
$ckey = 'widget:' . $this->name . ':' . md5(serialize($options));
}
if (null !== $ckey and is_array($cached = cache::get($ckey))) {
return $cached['content'];
}
try {
$data = $this->onGet($options);
if (null === $data) {
$result = "<!-- widget {$this->name} had nothing to say. -->";
} elseif (!is_string($data)) {
throw new RuntimeException(t('Виджет %name (%class) вернул мусор вместо XML.', array('%name' => $this->name, '%class' => get_class($this))));
} else {
// TODO: добавить заголовок виджета
$result = html::em('widget', array('name' => $this->name, 'class' => get_class($this), 'title' => $this->title, 'time' => microtime(true) - $time), $data);
}
} catch (WidgetHaltedException $e) {
$result = '<!-- ' . $e->getMessage() . ' -->';
}
if (null !== $ckey) {
cache::set($ckey, array('content' => $result));
}
} catch (WidgetHaltedException $e) {
return false;
}
return $result;
}
示例5: checkPerm
private function checkPerm(Context $ctx, array $item)
{
if (!array_key_exists('perms', $item)) {
return true;
}
if (!array_key_exists($item['perms'], self::$permcache)) {
if ('debug' == $item['perms']) {
$result = $ctx->canDebug();
} else {
list($mode, $type) = explode(',', $item['perms']);
$result = $ctx->user->hasAccess($mode, $type);
}
self::$permcache[$item['perms']] = $result;
}
return self::$permcache[$item['perms']];
}