- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对使用 Bolt 开发的网站内容的心智模型是,有“子页面”:
在文档中我找到了关于 Taxonomies 的部分在我看来,“分组”分类法就是我想要的。
所以我将以下内容添加到我的 taxonomy.yml
中:
pagegroups:
slug: pagegroups
singular_slug: pagegroup
behaves_like: grouping
options: { main, work, others }
通过在 contenttype.yml
中正确添加,我可以将页面分配给“子页面”,也就是页面组。 (为了能够获得页面组的附加信息,我还有一个“页面组”内容类型,其中的 slug 数学化了 taxonomy.yml
中的条目。)
为了允许像 /others/stefan
和 /work/currently
这样的路由,我在 routing.yml
中添加了以下内容:
work_page_binding:
path: '/work/{slug}'
defaults: { _controller: 'Bolt\Controllers\Frontend::record', 'contenttypeslug': 'page' }
contenttype: pages
others_page_binding:
path: '/others/{slug}'
defaults: { _controller: 'Bolt\Controllers\Frontend::record', 'contenttypeslug': 'page' }
contenttype: pages
但要使其与模板和菜单一起工作,页面组中的所有页面都必须使用正确的模板,以便显示正确的菜单。
我想一定有一种更动态的路由方式:
pagegroups_page_binding:
path: '/{pagegroup}/{slug}'
defaults: { [???] }
contenttype: pages
restrictions:
pagegroup: [???]
具有以下优点:
taxonomy.yml
中的条目,而不是为每个页面组添加新路由(当然是配置页面组内容元素入口和它的菜单仍然需要发生)menu(pagegroup.slug)
而不是为每个页面组复制模板有人可以建议如何开始使用它吗?
如果那是最好的方法,我很乐意编写自定义 Controller 。如果是,我应该把它放在哪里?
我可以想象这个用例并不少见,将其放入扩展中会很棒,但我不确定如何开始使用它,以及是否要加入额外的抽象级别我的解决实际问题的方法。
还有一件重要的事情是:我希望能够更新 bolt,所以我不想修改现有的类...
感觉就像问了不止一个问题,随意回答任何你有想法的部分。
最佳答案
目前这比应该做的更棘手,好消息是,由于对 Controller 进行了重大重构,下一版本的 Bolt 将更加灵活且易于扩展。
为了让它现在工作,你可以创建一个静态方法来返回内容组的管道分隔字符串,这是一个简单的例子:
首先在routing.yml中:
contentgrouppage:
path: '/{contentgroup}/{slug}'
defaults:
_controller: 'controller.frontend:record'
contenttypeslug: page
contentgroup: '<put your default value here>'
requirements:
contentgroup: 'My\Routing::getTaxonomyGroups'
contenttype: page
如您所见,我们要求类 My\Routing 和方法 getTaxonomyGroups 返回允许值列表,此方法如下所示:
use Bolt\Configuration\ResourceManager;
/**
*
*/
class Routing
{
public function getTaxonomyGroups()
{
$app = ResourceManager::getApp();
$groups = $app['config']->get('taxonomy/categories');
$urls = [];
foreach ($groups['options'] as $slug => $name) {
$urls[] = $slug;
}
return implode('|',$urls);
}
}
如您所见,获取当前应用程序对象的静态 hack 并不理想,下一个版本将被弃用,但问题是这些路由要求目前必须是静态方法,而下一个版本您将能够指定服务,例如:controller.requirements
关于url-routing - bolt CMS : Adding routes for pages under "grouping" taxonomy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31378954/
平台:Mac OSX Maverics Web 服务器:内置 apache,支持 mod-rewrite,启用 php5_module 重现步骤: cd/Users/用户名/站点/ mkdir bol
如何在 Bolt 中列出分类法中的所有术语?不是应用于记录的术语而是所有现有术语(如标签云或类别列表侧边菜单)? 最佳答案 直接在模板中,可以这样做: {% for category in app.c
我有两个可序列化的类A和B。并且有两种spout A_spout和B_spout。每个spout向bolt C发出并行类。但是方法execute中的元组没有区别,所以我如何区分它们? 最佳答案 每个输
我有一个拓扑,例如由 1 个喷嘴和 4 个 bolt 组成 spout 1 -> bolt A -> bolt B -> bolt C -> bolt D 如果 bolt A 中的某些条件不满足,我们
我正在从 spout 中获取数据。每个 bolt 都会将映射字段插入到我数据库中的不同表中。但是我的数据库表有约束。在我的测试表中,我有两个名为 user-details 和 my-details 的
在我的 Storm 拓扑中,我将一个大的程序逻辑保存在单个 Bolt 中。现在我把大的程序逻辑分成线性排列的小 bolt 。它的性能有什么不同吗? 最佳答案 根据您评论中的描述: In my topo
我正在使用 Bolt.cm 并且在编辑页面或条目时,右侧有一个称为“堆栈”的部分。在 Bolt 网站上,它说 Our Stack functionality contains your latest
我正在使用 Apache Storm,我想知道是否可以像这样用另一个 bolt 组合一个 bolt : public class MyNewBolt extends BaseRichBolt {
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
将 BoltA 和 BoltB 的输出发送到 BoltC 的最简单方法是什么。我必须使用 Joins 还是有任何更简单的解决方案。 A 和 B 具有相同的字段(ts、metric_name、metri
注意: Bolt1 包含前三个质数(2,3,5)的列表。 Bolt2 包含后三组质数(7,11,13)的列表。 在 Bolt3 中,它只是检查数字是否为素数。 从第一个 bolt 开始,我可以从 sp
bolt 是否可以从不同的 spout/bolt 接收多个输入元组?例如,Bolt C 接收来自 Spout A 的输入元组和来自 Bolt B 的输入元组以进行处理。我应该如何实现它?我的意思是为
得到这个错误 framework not found Bolts for architecture x86_64 逐字逐句地遵循 Facebook 的指南,但我唯一能想到的链接错误发生在框架搜索路径的
我正在尝试整合 Amazon Web SDK适用于 iOS。我手动安装了它(不使用 CocoPods)并且在文档中它说如果你安装了 facebook SDK 不包括 Bolts.framework 因
我正在尝试使用 Facebook/Parse Bolts 框架在 Android 上并行运行多个任务。 documentation for running tasks in parallel似乎表明
Error:(39, 13) Failed to resolve: com.parse.bolts:bolts-android:1.+ 这是我的build.gradle dependencies {
我想创建一个内容类型,其中包含诸如“年月”和“产品类型”之类的选择字段,并根据这两个字段的值自动生成标题字段。 这是因为两个选择字段值的描述性足够,我想减少 CMS 的最终用户为使标题显示在管理界面中
操作系统:Windows 10 专业版 Node :6.1.0 NPM:3.8.6 Gulp:CLI 版本 3.9.1 因此,firebase-bolt 已使用 npm install -g fire
我是 phone gap 的新手。在我的项目中集成了 facebook 插件。运行后显示错误 `Error:A problem occurred configuring root project 'a
我正在尝试构建我的项目。由于此错误,构建失败。 Users/company/Desktop/app/DemoApp/Pods/Bolts/Bolts/iOS/BFAppLink.m:11:9:找不到“
我是一名优秀的程序员,十分优秀!