本文整理汇总了PHP中Widget::getRequestOptions方法的典型用法代码示例。如果您正苦于以下问题:PHP Widget::getRequestOptions方法的具体用法?PHP Widget::getRequestOptions怎么用?PHP Widget::getRequestOptions使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Widget
的用法示例。
在下文中一共展示了Widget::getRequestOptions方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getRequestOptions
/**
* Препроцессор параметров.
*
* Вытаскивает из текущего урла параметризацию виджета, в паре с которым
* работает, в частности — параметры year, month, day.
*
* @return array параметры виджета.
*
* @param Context $ctx контекст вызова.
*/
protected function getRequestOptions(Context $ctx, array $params)
{
if (is_array($options = parent::getRequestOptions($ctx, $params))) {
// Нужно для подавления кэширования.
$options['apath'] = $ctx->query();
// Самостоятельно парсим урл, т.к. будем подглядывать за другими виджетами.
// FIXME: это надо получать из контекста.
$url = bebop_split_url();
if (!empty($url['args'][$this->host])) {
// Вытаскиваем нужные нам параметры.
foreach (array('year', 'month', 'day') as $key) {
// Первый же отсутствующий параметр прерывает цепочку.
if (!array_key_exists($key, $url['args'][$this->host])) {
break;
}
// Если параметр найден -- сохраняем его значение и продолжаем сканировать.
$options[$key] = $url['args'][$this->host][$key];
}
}
}
// Возвращаем параметризацию.
foreach (array('year', 'month', 'day') as $key) {
if (array_key_exists($key, $options)) {
$options['current'][$key] = $options[$key];
} elseif (array_key_exists($k = $this->host . '_' . $key, $_GET)) {
$options['current'][$key] = $_GET[$k];
}
}
return $options;
}
示例2: getRequestOptions
/**
* Препроцессор параметров.
*
* @param Context $ctx контекст запроса.
*
* @return array параметры виджета.
*/
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
$options['uid'] = $this->ctx->user->id;
// $this->get('uid');
$options['#cache'] = false;
return $options;
}
示例3: getRequestOptions
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
$options['q'] = $this->get('query');
$options['page'] = $this->get('page', 1);
$options['limit'] = $this->per_page;
$options['#cache'] = false;
return $options;
}
示例4: getRequestOptions
/**
* Препроцессор параметров.
*
* @param Context $ctx контекст запроса.
*
* @return array массив с параметрами виджета.
*/
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
if (!$params['document']) {
return false;
}
$options['doc'] = $params['document']['id'];
$options['classes'] = $this->classes;
$options['field'] = $this->field;
$options['sort'] = $this->sort;
return $options;
}
示例5: getRequestOptions
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
$options['uid'] = $ctx->user->id;
$options['mode'] = $this->get('mode');
if (null === ($options['rel'] = $params['document'])) {
$options['relname'] = null;
} elseif ('user' == $ctx->document->class) {
$options['relname'] = empty($ctx->document->fullname) ? $ctx->document->name : $ctx->document->fullname;
} else {
$options['relname'] = $ctx->document->name;
}
return $this->options = $options;
}
示例6: getRequestOptions
/**
* Препроцессор параметров.
*
* Выбирает из информации о контексте параметры, относящиеся к этому виджету.
*
* @param Context $ctx контекст запроса.
*
* @return array массив с параметрами.
*/
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
if ($this->onlyiflast and isset($params['document'])) {
return $this->halt();
}
if ('root' == $this->fixed) {
$options['section'] = $params['root'];
} elseif ('always' == $this->fallbackmode and $this->fixed) {
$options['section'] = array('id' => $this->fixed);
} elseif ($params['section']) {
$options['section'] = $params['section'];
}
if (!empty($this->types)) {
$options['classes'] = array_intersect((array) $this->types, $ctx->user->getAccess(ACL::READ));
}
if ($this->onlyathome and $options['section'] != $params['root']) {
return $this->halt();
}
if ($this->skipcurrent and isset($options['document'])) {
$options['document'] = $options['document']['id'];
}
if (is_array($tmp = $this->get('classes'))) {
$options['filter']['class'] = array_unique($tmp);
}
// Добавляем выборку по архиву.
foreach (array('year', 'month', 'day') as $key) {
if (null === ($tmp = $this->get($key))) {
break;
}
$options['filter']['node.created.' . $key] = $tmp;
}
// Добавляем выбор страницы.
if ($options['limit'] = $this->get('limit', $this->limit)) {
if ($this->pager) {
$options['page'] = $this->get('page', 1);
} else {
$options['page'] = 1;
}
$options['offset'] = ($options['page'] - 1) * $options['limit'];
} else {
$options['offset'] = null;
}
// Добавляем пользовательскую фильтрацию.
if ($tmp = $this->get('filter')) {
$options['filter'] = $tmp;
}
$options['sort'] = $this->get('sort', $this->sort);
return $options;
}
示例7: getRequestOptions
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
$options['#cache'] = false;
$options['action'] = $this->get('action', 'status');
$options['vote'] = $this->get('vote');
if (!($options['node'] = $params['document'])) {
return $this->halt();
}
if (null !== ($options['rate'] = $this->get('rate'))) {
$options['action'] = 'rate';
}
return $options;
}
示例8: getRequestOptions
/**
* Вытаскивает из контекста параметры виджета.
*
* @return array параметры, необходимые виджеты
*
* @param Context $ctx контекст запроса. Используемые GET-параметры:
* action, код раздела (если используется возврат информации о соседях), код
* документа (если не используется возврат фиксированного документа).
*/
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
$options['action'] = 'view';
if ($this->fixed) {
$options['document'] = array('id' => $this->fixed);
} elseif (!($options['document'] = $params['document'])) {
return $this->halt();
$options['section'] = $params['section'];
if (null === ($options['action'] = $this->get('action', $this->mode))) {
$options['action'] = 'view';
}
}
return $options;
}
示例9: getRequestOptions
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
$options['#cache'] = false;
// Режим работы задаётся администратором, но переопределяется извне.
$options['mode'] = $this->get('mode', 'simple');
// Добавление товара.
if (null !== ($options['add'] = $this->get('add'))) {
$options['mode'] = 'add';
$options['qty'] = $this->get('qty', 1);
}
if (empty($options['mode'])) {
throw new WidgetHaltedException();
}
return $options;
}
示例10: getRequestOptions
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
$options['status'] = $this->get('status');
$options['mode'] = $this->mode;
if (empty($options['mode'])) {
$options['mode'] = 'list';
}
if ('linked' == $options['mode']) {
$options['mode'] = 'list';
}
switch ($options['mode']) {
case 'list':
switch ($this->startwith) {
case 'last':
$options['default'] = 'last';
if (!($options['doc'] = $params['document'])) {
return $this->halt();
}
break;
case 'first':
$options['default'] = 1;
if (!($options['doc'] = $params['document'])) {
return $this->halt();
}
break;
case 'tracker':
$options['default'] = 1;
$options['action'] = 'tracker';
$options['doc'] = $params['document'];
if (null === $this->perpage) {
return $this->halt();
}
break;
}
break;
case 'last':
break;
}
if (empty($options['default'])) {
$options['default'] = 1;
}
$options['page'] = $this->get('page', $options['default']);
return $options;
}
示例11: getRequestOptions
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
if ($params['section'] or $params['document']) {
mcms::debug("Виджет {$this->getInstanceName()} не может работать на страницах, параметризуемых кодом раздела или документа.");
throw new WidgetHaltedException();
}
if (count($ctx->apath) == 1) {
$options['user'] = $ctx->apath[0];
} elseif (count($ctx->apath) > 1) {
throw new PageNotFoundException();
} else {
$options['user'] = null;
}
$options['limit'] = $this->limit ? $this->limit : 10;
$options['page'] = $this->get('page', 1);
return $options;
}
示例12: getRequestOptions
/**
* Препроцессор параметров.
*
* @param Context $ctx контекст запроса.
*
* @return array выбранные из контекста параметры, относящиеся к виджету.
*/
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
$options['root'] = $params['section']['id'];
switch ($this->fixed) {
case 'root':
$options['root'] = $params['root']['id'];
break;
case 'parent':
$options['parent'] = true;
break;
default:
if (is_numeric($this->fixed)) {
$options['root'] = $this->fixed;
}
}
return $this->options = $options;
}
示例13: getRequestOptions
/**
* Препроцессор параметров.
*
* @param Context $ctx параметры запроса.
*
* @return array массив с параметрами виджета.
*/
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
if ($this->forcefixed) {
if ('page' == ($options['root'] = $this->fixed)) {
$options['root'] = $params['root'];
}
} else {
$options['root'] = $params['section'];
}
$options['dynamic'] = $params['section'] !== null;
if ($this->illcache) {
$options['anchor'] = $params['section'];
}
if (!empty($options['root']) and !is_numeric($options['root']) and !is_object($options['root'])) {
throw new InvalidArgumentException(t('Вместо кода раздела в виджет %name пришёл какой-то мусор: %trash.', array('%name' => $this->name, '%trash' => $options['root'])));
}
return $options;
}
示例14: getRequestOptions
public function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
$options['type'] = $this->get('type', $this->type);
$options['default'] = $this->get('default', array());
$options['#cache'] = false;
if (null === ($options['root'] = $params['section']['id'])) {
$options['root'] = $this->section_default;
}
if ('default' != ($options['status'] = $this->get('status', 'default'))) {
$options['node'] = $this->get('node');
}
$options['stripped'] = empty($this->stripped) ? 0 : 1;
if (null !== ($tmp = $this->get('parent')) and is_numeric($tmp)) {
$options['parent_id'] = intval($tmp);
} else {
$options['parent_id'] = null;
}
return $this->options = $options;
}
示例15: getRequestOptions
protected function getRequestOptions(Context $ctx, array $params)
{
$options = parent::getRequestOptions($ctx, $params);
$options['#cache'] = false;
return $options;
}