本文整理汇总了PHP中Pagekit\Application::menu方法的典型用法代码示例。如果您正苦于以下问题:PHP Application::menu方法的具体用法?PHP Application::menu怎么用?PHP Application::menu使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pagekit\Application
的用法示例。
在下文中一共展示了Application::menu方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: saveAction
/**
* @Route("/", methods="POST")
* @Request({"menu":"array"}, csrf=true)
*/
public function saveAction($menu)
{
$oldId = isset($menu['id']) ? trim($menu['id']) : null;
$label = trim($menu['label']);
if (!($id = App::filter($label, 'slugify'))) {
App::abort(400, __('Invalid id.'));
}
if ($id != $oldId) {
if ($this->config->has('menus.' . $id)) {
throw new ConflictException(__('Duplicate Menu Id.'));
}
$this->config->remove('menus.' . $oldId);
Node::where(['menu = :old'], [':old' => $oldId])->update(['menu' => $id]);
}
$this->config->merge(['menus' => [$id => compact('id', 'label')]]);
App::menu()->assign($id, $menu['positions']);
return ['message' => 'success', 'menu' => $menu];
}
示例3: editAction
/**
* @Route("site/page/edit", name="page/edit")
* @Access("site: manage site", admin=true)
* @Request({"id", "menu"})
*/
public function editAction($id = '', $menu = '')
{
if (is_numeric($id)) {
if (!$id or !($node = Node::find($id))) {
App::abort(404, 'Node not found.');
}
} else {
$node = Node::create(['type' => $id]);
if ($menu && !App::menu($menu)) {
App::abort(404, 'Menu not found.');
}
$node->menu = $menu;
}
if (!($type = $this->site->getType($node->type))) {
App::abort(404, 'Type not found.');
}
return ['$view' => ['title' => __('Pages'), 'name' => 'system/site/admin/edit.php'], '$data' => ['node' => $node, 'type' => $type, 'roles' => array_values(Role::findAll())]];
}