copiaincolla / metatags-bundle
HTML Meta 标签管理。
Requires
- symfony/framework-bundle: >=2.3.0
Suggests
- symfony/twig-bundle: 2.*
README
Symfony2 Bundle,通过路径匹配来管理HTML Meta标签。此Bundle管理相对路径,而不是绝对URL。
工作原理
您,作为开发者,在网站的保留区域指定您希望管理员可见的路径。然后管理员可以手动为具体路径设置meta标签值,或定义一些应用于路径的正则表达式规则。您还可以在twig模板中设置一些meta标签。
MetaTagsBundle 加载 一些URL并管理URL与其之间的关联,将数据存储在数据库中。
要选择必须由MetaTagsBundle管理的URL,您必须 加载 生成它们的路由。有几种不同的方法可以实现这一点
- 通过在
config.yml
中包含Bundle名称来加载一个Bundle的所有路由 - 对于每个路由,在路由注解中指定选项
ci_metatags_expose
对于需要从数据库中获取参数的路由,有从数据库中加载实体并将路由参数与实体值关联以创建URL的可能性。
对于更具体的需求,也可以创建一个自定义服务,该服务简单地返回一个URL数组。
一旦在MetaTagsBundle中加载了URL,您将为每个URL关联以下meta标签
- 标题
- 描述
- 关键词
- 作者
- 语言
- 机器人
- 谷歌机器人
- og:title
- og:description
- og:image
可以为每个meta标签指定默认值,当URL没有或部分由用户指定的meta标签时使用。
注意:此Bundle目前处于beta状态,处于测试阶段,即将发布第一个版本。
变更日志
2014年10月4日 - 版本 2.1
增加了与Symfony 2.4的兼容性。
2014年3月3日 - 版本 2.0
管理员区域的模板已经被重构,减少了文件数量。引入了对Symfony 2.3的兼容性。功能“allow_edit_url”已被暂停。
2013年8月20日 - 版本 1.1
发布了1.1版本!最重要的引入是定义用于默认meta标签值的级联正则表达式规则的可能性。
2013年4月5日 - 版本 1.0
在此日期,版本1.0被标记,太好了!这意味着此Bundle不再是beta版本,而是准备好用于生产环境。
2013年1月24日 - 版本 0.1
此Bundle的工作开始,目前处于alpha状态。
安装
安装说明可在此处找到。
此Bundle的当前版本(master分支)与Symfony >= 2.2.* 兼容。
标记说明
我们将尽力提供标记,以便在composer或deps中熟练使用。
此Bundle的开发针对Symfony >= 2.0.*版本;以下是关于我们使用的标记系统的简要说明
- 格式为“X.Y”的标记与
Symfony >= 2.2.*
兼容 - 格式为“S2.0/X.Y”的标记与
Symfony 2.0.*
兼容 - 格式为“S2.1/X.Y”的标记与
Symfony 2.1.*
兼容
如果您使用的是 symfony 2.0.*,请遵循symfony-2.0.x 分支上的此指南。
如果您使用的是 symfony 2.1.*,请遵循symfony-2.1.x 分支上的此指南。
有关 CopiaincollaMetaTagsBundle 中使用的 标签和分支系统 的更多详细信息,请参阅标签和分支系统说明。
配置
要配置此包,请阅读配置以了解所有可能的值。
默认元标签值可以通过 Web 界面在 /metatags/defaults
URL 进行配置。
加载 URL
要生成包含在包中所有路由的 URL,只需将包名称添加到 config.yml
中,具体说明请参阅此处。
您也可以通过指定路由注解中的选项来添加单个路由
@Route("/product/{id}/{slug}", name="product_show", options={"ci_metatags_expose"=true})
通过此选项,您还可以选择 不 从特定路由生成 URL
@Route("/product/{id}/{slug}", name="product_show", options={"ci_metatags_expose"=false})
您还可以通过从数据库中获取数据来生成关联元标签的 URL;请参阅配置#dynamic_routes这一节。
最后,您还可以通过遵循此指南来创建自定义 URL 加载器 服务。
向用户显示帮助消息
您可以通过指定 @Route 选项在编辑页面上显示消息,只需使用 ci_metatags_help
选项即可
@Route("/product/{id}/{slug}", name="product_show", options={"ci_metatags_help"="This urls represents a product. Use {{ entity.title }} to print the title of a product"})
在模板中的使用
目前仅支持 twig。
在包含 <head>
标签的模板中,只需添加
<body>
<head>
{% render controller('CopiaincollaMetaTagsBundle:MetaTags:render') %}
[...]
</head>
[...]
</body>
要覆盖默认元标签和由 Web 界面插入的自定义元标签,可以指定 inlineMetatags
变量
{% render controller('CopiaincollaMetaTagsBundle:MetaTags:render', { 'inlineMetatags': {'title': 'New foo title'} }) %}
有关模板中使用和高级使用的更详细说明,请参阅模板使用。