Symfony1 自定义元标记配置
我有两个表,Symfony1 自定义元标记配置,symfony1,symfony-1.4,meta-tags,Symfony1,Symfony 1.4,Meta Tags,我有两个表,page和settings page只是一组字段,如name和slug,还有3个其他字段用于元标记(title、keywords、description),并显示一个cms页面 settings有3个字段:default\u meta\u title、default\u meta\u关键字、default\u meta\u description 现在我要做的是,如果我所在的页面没有cms页面中的特定元信息集,那么在HTML源代码中显示默认的元标记 所有的页面,除了主页都是这样管理的
page
和settings
page
只是一组字段,如name和slug,还有3个其他字段用于元标记(title、keywords、description),并显示一个cms页面
settings
有3个字段:default\u meta\u title、default\u meta\u关键字、default\u meta\u description
现在我要做的是,如果我所在的页面没有cms页面中的特定元信息集,那么在HTML源代码中显示默认的元标记
所有的页面,除了主页都是这样管理的,所以我想我需要在layout.php
中添加一些代码来实现这一点
因此,主页将显示我的默认值,因为我无法在cms
页面中设置此项。您可以使用插槽-检查布局中是否存在插槽-如果存在,则添加自定义元字段-如果不存在,则添加默认元字段您可以使用插槽-检查布局中是否存在插槽-如果存在,则添加自定义元字段-如果不存在,则添加默认值有两种方法可以解决这个问题
首先是使用类用默认的元标记更新view.yml
(请参阅)。之后,如果特定页面应该使用另一个元,您可以使用
第二个(正如ManseUK所建议的)是声明在布局中放置这样的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<?php include_javascripts() ?>
<?php include_stylesheets() ?>
<?php include_title() ?>
<?php if (has_slot('metas')): ?>
<?php include_slot('metas') ?>
<?php else: ?>
<?php include_component('page', 'metas') ?>
<?php endif; ?>
<link rel="shortcut icon" href="/favicon.ico" />
</head>
<body>
我假设您将使用真实代码替换$page->hasMetas()
,该代码将检查您的page
对象是否具有元标记
实际上,我更愿意进一步编写page
组件以接受参数。模板中的代码如下所示
<?php slot('metas') ?>
<?php include_component('page', 'metas', array('metas'=>$page->getMetas())) ?>
<?php end_slot() ?>
将在页面
组件中决定应呈现哪些图元(默认值或非默认值)(我假设您可以轻松地从数据库中检索defaul;t设置)。如果未传递任何参数(请参见布局代码),则组件也应呈现默认图元
我希望这会有所帮助。有两种方法可以解决这个问题
首先是使用类用默认的元标记更新view.yml
(请参阅)。之后,如果特定页面应该使用另一个元,您可以使用
第二个(正如ManseUK所建议的)是声明在布局中放置这样的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<?php include_javascripts() ?>
<?php include_stylesheets() ?>
<?php include_title() ?>
<?php if (has_slot('metas')): ?>
<?php include_slot('metas') ?>
<?php else: ?>
<?php include_component('page', 'metas') ?>
<?php endif; ?>
<link rel="shortcut icon" href="/favicon.ico" />
</head>
<body>
我假设您将使用真实代码替换$page->hasMetas()
,该代码将检查您的page
对象是否具有元标记
实际上,我更愿意进一步编写page
组件以接受参数。模板中的代码如下所示
<?php slot('metas') ?>
<?php include_component('page', 'metas', array('metas'=>$page->getMetas())) ?>
<?php end_slot() ?>
将在页面
组件中决定应呈现哪些图元(默认值或非默认值)(我假设您可以轻松地从数据库中检索defaul;t设置)。如果未传递任何参数(请参见布局代码),则组件也应呈现默认图元
我希望这会有所帮助。你能详细说明你的问题吗?你能详细说明你的问题吗?太棒了!!像一个魔咒一样工作,现在在数据库中没有定义meta的所有页面上呈现默认meta,并且在数据库中显示页面中的meta!伟大的明亮的像一个魔咒一样工作,现在在数据库中没有定义meta的所有页面上呈现默认meta,并且在数据库中显示页面中的meta!伟大的