midgard / toolbar-bundle
此包已被废弃,不再维护。未建议替换包。
Symfony2应用的工具栏处理
dev-master
2012-06-22 10:54 UTC
Requires
- php: >=5.3.2
- symfony/symfony: 2.*
This package is not auto-updated.
Last update: 2020-01-24 14:59:54 UTC
README
此包为Symfony2应用提供简单的工具栏。工具栏由可能具有图标、标签和快捷键的按钮组成。按钮可以在URL上触发GET或POST操作。
工具栏的设计理念与MidCOM框架中的工具栏概念非常相似。
如果您正在寻找导航菜单而不是面向动作的工具栏,那么KnpMenuBundle是更好的选择。
安装
通过将以下内容添加到deps
文件并运行php bin/vendors install
来安装此包
[MidgardToolbarBundle]
git=git://github.com/bergie/MidgardToolbarBundle.git
target=Midgard/ToolbarBundle
然后将Midgard
命名空间添加到app/autoload.php
'Midgard' => __DIR__.'/../vendor'
并在您的Kernel中启用此包
new Midgard\ToolbarBundle\MidgardToolbarBundle()
用法
工具栏可以直接使用或通过工具栏提供者使用。直接工具栏适用于您想要为列表中的每个项目添加工具栏等场景。通过工具栏提供者使用的工具栏可以用于Web应用中的共享工具栏,其中应用的不同部分可以将其自己的动作注册到工具栏中。
直接工具栏
use Midgard\ToolbarBundle\Toolbar\Toolbar;
$toolbar = new Toolbar();
// GET action
$toolbar->addItem(
array(
'url' => '/login',
'label' => 'Log in',
'icon' => '/web/some-icon.png',
'helptext' => 'Log in to the system',
)
);
// POST action
$toolbar->addItem(
array(
'url' => '/myformprocessor',
'label' => 'Delete',
'post' => true,
'hiddenargs' => array(
'article_id' => 1,
),
)
);
echo $toolbar->render();
除了提供对addItem
方法的直接URL之外,您还可以让Symfony2路由器为您生成它们。在这种情况下,以数组格式提供URL,例如
$toolbar->addItem(
array(
'url' => array(
'route' => '_demo_hello',
'parameters' => array(
'name' => 'World',
),
),
'label' => 'Say hello',
)
);
为了使URL生成工作,您需要通过setContainer
方法将依赖注入容器传递给工具栏。下面解释的集中式工具栏会自动执行此步骤。
集中式工具栏
集中式工具栏可以通过名称从提供者访问。您可以有多个。例如,Midcom兼容性包使用了四个
view
:与页面主要对象关联的工具栏(如“编辑”操作)node
:与提供当前视图的包关联的工具栏(如“添加”操作)host
:网站范围的工具栏(如“登出”操作)help
:访问上下文帮助
快速使用示例
$toolbar = $this->container->get('midgard.toolbar.provider')->get('main');
$toolbar->addItem(...);
echo $this->container->get('midgard.toolbar.provider')->render('main');
// or echo $toolbar->render();