本文整理汇总了PHP中Pagekit\Application::widget方法的典型用法代码示例。如果您正苦于以下问题:PHP Application::widget方法的具体用法?PHP Application::widget怎么用?PHP Application::widget使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pagekit\Application
的用法示例。
在下文中一共展示了Application::widget方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: editAction
/**
* @Request({"id": "int", "type": "string"})
*/
public function editAction($id = 0, $type = null)
{
if (!$id) {
$widget = Widget::create(['type' => $type]);
} else {
if (!($widget = Widget::find($id))) {
App::abort(404, 'Widget not found.');
}
}
return ['$view' => ['title' => __('Widgets'), 'name' => 'system/widget/edit.php'], '$data' => ['widget' => $widget, 'config' => ['menus' => App::menu(), 'nodes' => array_values(Node::query()->get()), 'roles' => array_values(Role::findAll()), 'types' => array_values(App::widget()->all()), 'positions' => array_values(App::position()->all())]]];
}
示例2: getWidgets
/**
* @param string|null $position
* @return Widget[]
*/
protected function getWidgets($position)
{
static $widgets, $positions = [];
if (null === $widgets) {
$widgets = Widget::where(['status' => 1])->get();
}
if (!($pos = $this->positions->get($position))) {
return [];
}
if (!isset($positions[$position])) {
$positions[$position] = [];
foreach ($pos['assigned'] as $id) {
if (!isset($widgets[$id]) or !($widget = $widgets[$id]) or !$widget->hasAccess(App::user()) or $nodes = $widget->nodes and !in_array(App::node()->id, $nodes) or !($type = App::widget($widget->type))) {
continue;
}
$result = $type->render($widget);
$widget->set('result', $result);
$positions[$position][] = $widget;
}
}
return $positions[$position];
}