Zend 框架:元属性集成

2023-11-22

我正在尝试根据页面内容将一些元(采用以下格式)添加到页面的头部:

<meta property="og:title" content="some content" />

使用headMeta()->appendName像这样:

$this->view->headMeta()->appendName('og:title', 'some content');

在标头中生成以下内容:

<meta name="og:title" content="some content" />

有没有办法让Zend生成metaproperty field?

谢谢


听起来您需要创建自己的视图助手,扩展标准 Zend FrameworkHeadMeta查看助手,并实现一个名为appendProperty(),模仿的行为appendName().

自从appendName()方法似乎是在__call()方法,看起来你的扩展类可以简单地复制相同的__call()形成父级,但更改中使用的模式preg_match() from:

'/^(?P<action>set|(pre|ap)pend|offsetSet)(?P<type>Name|HttpEquiv)$/'

to

'/^(?P<action>set|(pre|ap)pend|offsetSet)(?P<type>Name|HttpEquiv|Property)$/'

[顺便说一句,可能值得向 ZF 跟踪器提出问题,建议从内联代码中提取此正则表达式模式,并将其放置为类的受保护成员。这样,子类(例如您的子类)可以简单地声明一个新模式,而不是“复制”如此多的父代码。但在我向他们建议之前,我必须进行更多的观察和测试。]

无论如何,只是在黑暗中刺一下......

更新:2010-12-17

我发现需要做更多的工作才能使其发挥作用。您需要覆盖受保护的成员$_typeKeys和受保护的方法_normalizeType()处理您的新“财产”类型。

您的扩展类可能如下所示:

class Kwis_View_Helper_HeadMeta extends Zend_View_Helper_HeadMeta
{
    protected $_typeKeys     = array('name', 'http-equiv', 'charset', 'property');

    public function __call($method, $args)
    {
        if (preg_match('/^(?P<action>set|(pre|ap)pend|offsetSet)(?P<type>Name|HttpEquiv|Property)$/', $method, $matches)) {
            $action = $matches['action'];
            $type   = $this->_normalizeType($matches['type']);
            $argc   = count($args);
            $index  = null;

            if ('offsetSet' == $action) {
                if (0 < $argc) {
                    $index = array_shift($args);
                    --$argc;
                }
            }

            if (2 > $argc) {
                require_once 'Zend/View/Exception.php';
                $e = new Zend_View_Exception('Too few arguments provided; requires key value, and content');
                $e->setView($this->view);
                throw $e;
            }

            if (3 > $argc) {
                $args[] = array();
            }

            $item  = $this->createData($type, $args[0], $args[1], $args[2]);

            if ('offsetSet' == $action) {
                return $this->offsetSet($index, $item);
            }

            $this->$action($item);
            return $this;
        }

        return parent::__call($method, $args);
    }

    protected function _normalizeType($type)
    {
        switch ($type) {
            case 'Property':
                return 'property';
            default:
                return parent::_normalizeType($type);
        }
    }
}

正如之前所观察到的,如果preg_match()签入的模式Zend_View_Helper_HeadMeta::__call()被分解为一个受保护的成员,称为类似的东西$_callPattern。那么扩展类就不必复制大部分__call()方法。它只需要覆盖受保护的成员$_typeKeys and $_callPattern并实现受保护的方法_normalizeType(),如上图所示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zend 框架:元属性集成 的相关文章

  • 使用元表中的多个条目的 Compex MySQL 左连接

    我正在尝试创建一个查询来从主表 WordPress 用户表 和用户元表中获取信息 如果您不熟悉 WP DB 架构 wp users 保存基本用户信息及其 ID wp usermeta 保存 ID meta key 和 meta value
  • Facebook Graph API - 如何用新行发布到墙上?

    我正在使用 Facebook Graph API 但遇到一个问题 我找不到任何方法如何使用一些 HTML 代码发布到墙上or新线路 怎么办呢 这是我的代码
  • Facebook GraphAPI 有限制地减少数据量

    因此 我正在努力寻找记录的位置 如果有的话 但在从 FB GraphAPI 请求数据时收到以下错误消息 Please reduce the amount of data you re asking for then retry your r
  • 在 Linux 中使用 Python 读取 EXE、MSI 和 ZIP 文件元数据

    我正在编写一个 Python 脚本 将大量 Windows 安装程序索引到数据库中 我想知道如何使用在 Linux 上运行的 Python 从 EXE MSI 和 ZIP 文件中读取元数据信息 公司 产品名称 版本等 Software 我在
  • Facebook的publish_actions不再在桌面应用程序中工作

    根据这个 https developers facebook com docs apps changelog https developers facebook com docs apps changelog2014 年 4 月 30 日之
  • 使用“manage_pages”权限创建页面访问令牌时收到警告

    当我尝试获取具有 manage pages 权限的 page access 令牌时 我收到以下警告 以下权限尚未批准使用 manage pages 如果您公开您的应用程序 它们将不会向使用您应用程序的人显示 提交它们以供审核或了解更多信息
  • zend 模块特定配置问题

    我使用 zend 框架构建 REST Web 服务 并且使用模块来分隔我的 api 版本 现在 我想为每个模块 v1 和 v2 都有一个单独的配置文件 主要用于指定单独的数据库连接 我有这样的目录结构 application modules
  • Zend 框架会话丢失

    我有一个注册表单 当用户注册时 它会将他重定向到他的页面 在 Firefox 和 Chrome 中一切正常 但在 Internet Explorer 中则正常 看起来保存用户信息后 会话就关闭了 并且不会将用户重定向到他的页面 我该如何解决
  • HTML:什么是 `xmlns:fb="http://www.facebook.com/2008/fbml"`?

    What is xmlns fb http www facebook com 2008 fbml 我在很多地方都看到过最近的标签 它有什么作用 While I haven t seen it in use this is standard
  • 尽管设置了元数据,Reflect.getMetadata() 返回未定义

    我正在尝试在我的 TypeScript 应用程序中使用注释 但是我一定做错了什么 因为Reflect getMetadata 总是返回undefined 尽管我可以在调试器中看到元数据似乎设置正确 my class ts 带有带注释的属性
  • 在派生自 Control 的 ASP.NET 自定义控件中呈现自关闭标记

    我正在开发 Facebook FBML 控件库 并希望创建类似于 ASP NET WebControls 库的 FBML 控件 我有一个默认处理渲染的基类 这是我的渲染方法 protected override void Render Ht
  • facebook fql 查询类似于朋友签到

    寻找与下面的搜索等效的 fql 希望获得朋友的所有签到和地点名称 EDIT temp time 2 周前 如果在下面 则获取签到的页面 ID 地点 和作者 ID 用户 SELECT author uid page id FROM check
  • 关于存储库的领域驱动设计问题

    我正在尝试实现 DDD 因此我创建了以下类 用户 域模型 UserRepository 管理对象的中央工厂 UserMapper UserDbTable 映射应用程序功能并提供 CRUD 实现的映射器 我的第一个问题是 当模型需要与持久层通
  • Facebook fb:评论图 API

    我想在我的网站上添加 Facebook 评论 我自己的网站评论 问题是 当显示帖子时 我想在每个帖子旁边显示评论计数 所以我的评论 Facebook 评论 我知道我可以做到这一点https graph facebook com commen
  • As3 Graph API 注销

    我正在开发一个由不同用户玩的应用程序 但我使用 as3 graph api 来验证用户身份并在他们的墙上发布 并且我需要在下一个用户在 as3 graph 上开始会话之前注销每个用户应用程序编程接口 http code google com
  • 如何获得永不过期的 Facebook_Account_(即页面)访问令牌?

    由于一些不幸的术语选择 这个主题很难在 Google 上搜索到 所以在我问问题之前 先快速澄清一下 Facebook 帐户 即一个人的顶级个人帐户 可以有子帐户 公司 品牌 名人等 不幸的是 Facebook 称之为 帐户 与这些 帐户 交
  • 我如何请求“publish_actions”权限?

    华盛顿邮报 https www facebook com dialog permissions request app id 225771117449558 display page next https 3A 2F 2Fapps face
  • 如何检索标记某人的所有 Facebook 照片

    我知道您可以将限制和偏移值附加到 graph facebook com id photos API 调用中以对照片进行分页 但大的限制似乎效果不佳 照片最终会丢失 我在这里读到 limit 0 为您提供了所有照片 但照片又会丢失 那么您可以
  • Android - Java - 发送 facebook 聊天消息的意图(facebook 禁用 xmpp)

    Facebook 已弃用 xmpp API 有没有办法打开意图 或将数据传递到fb 以在Android设备上发送聊天消息 设备上安装的 Facebook 和 Messenger 应用 谢谢 您需要将 uri 传递给意图 这里10000572
  • 分享到 Facebook 墙,不弹出对话框

    我正在 Rails 中构建一个 Facebook 应用程序 用户在其中创建一个条目并将其提交到其他用户的条目集合中 我想做的是在提交时自动将指向该条目的链接共享到用户的墙上 但我无法理解 Graph API 文档在没有弹出对话框的情况下执行

随机推荐

  • 当 setUpClass 失败时,如何清理 Python UnitTest?

    假设我有以下 Python UnitTest import unittest def Test unittest TestCase classmethod def setUpClass cls Get some resources if e
  • iOS 视图变换动画

    我可能错过了一些简单的东西 但试图用图像视图做一个简单的 肯伯恩斯效果 首先是代码 UIView animateWithDuration 20 delay 2 options UIViewAnimationCurveLinear anima
  • 如何使用 LINQ 左连接多个表

    我正在尝试使用 LINQ 左连接三个表 我的 SQL 工作如下 Select j Id u FirstName u LastName u Role From Job j left join JobTranslator as jt on j
  • 如何使用 netfilter 挂钩在内核空间中回显数据包?

    我想在内核空间中回显一个数据包 我在这台机器上运行一个 echo 服务器 端口为 6000 现在 客户端在另一台机器上运行 向回显服务器发送数据 现在 我想做的是从内核空间回显数据包 我不想用数据包打扰服务器 它会从内核空间默默地回显 我在
  • C# 4.0 中的方法重载与可选参数[重复]

    这个问题在这里已经有答案了 哪一个更好 乍一看 可选参数似乎更好 更少的代码 更少的 XML 文档等 但为什么大多数 MSDN 库类使用重载而不是可选参数 当您选择使用可选参数 或重载 时 有什么特别需要注意的事情吗 C 4 0 中 可选参
  • 在 Javascript 中以 50 个小块执行 100K Promise

    我有一个函数可以对服务进行 REST 调用并返回一个承诺 让我们调用该函数 Execute 该函数采用 ID 并将 ID 作为 GET 参数发送到 REST 端点 该端点将 ID 与一些附加信息一起保存在 mongoDB 数据库中 在客户端
  • ggplot 图例不适用于scale_colour_manual

    我知道之前已经有人问过同样的问题 ggplot 图例 scale colour manual 不起作用 但问题涉及的数据集比我这里的数据集稍微复杂 答案建议重组数据 然后使用重组数据 但即使使用下面的简单数据 问题仍然存在 我无法解决它 因
  • 将图像从 FileReader 传递到 Angular 6 中的表单输入

    我尝试创建一个用户界面 其中有一个带有几个文本字段的表单 一个input type file and a div您可以将图像与表单的其余部分一起上传 我的目标 逻辑 使用相同的div放置图像或单击它并打开文件夹资源管理器 例如input t
  • EF Code First,将两个导航属性映射到同一对象类型

    如果我有一个User具有以下属性的类 public Guid UserPreferenceId get set public virtual DefaultUserPreference UserPreference get set publ
  • Android 静态 Application.getInstance()

    你能帮我解决这个情况吗 我们正在使用一个类的静态实例 该类扩展了 android 中的 Application public class MyClass extends Application public static MyClass g
  • 成员名称和构造函数参数名称之间的冲突[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的成员与方法参数访问 我有一个班级 有一些成员 比如x y width and height 在它的构造函数中 我不会这样做 A A int x int y int width int heig
  • 如何在单独的文件夹中添加资源?

    当我尝试通过单击 添加现有项目 在资源设计器中添加资源时 该项目被放置在 资源 文件夹中 问题是 如果我在资源目录中创建一个新目录并将资源放在那里 我会收到编译器错误 无法找到文件 我无法将所有资源放在一个文件夹中 因为我必须添加 2500
  • C# 中的 Struct.Pack 等效吗?

    我正在构建一个连接到渲染应用程序的 C 客户端 但失败了 我通过剖析一个适用于这一行的Python客户端来缩小问题范围 def Startclient Click self sender e try s socket socket sock
  • Linux 中的 Java - root 和非 root 的不同外观类

    我注意到 Java 为 root 和非 root 用户提供了不同的外观类 我试图了解如何使 LAF 保持一致 此外 即使在用户 root 内也是不一致的 取决于用户 root 的登录方式 示例代码 编译并打包在laf jar import
  • 使用decimal.ToString("C") 和 CultureInfo 自定义货币符号和小数位

    我有一个问题decimal ToString C 覆盖 基本上我想做的是如下 CultureInfo usCulture new CultureInfo en US Thread CurrentThread CurrentCulture u
  • 远程远程端点 RDFLib / Redland 上的 SPARQL 查询

    我正在尝试查询远程端点并获取 owl sameAs 映射 我尝试了 RDFLib 和 Redland 但都不适合我 可能我没有正确处理名称空间 这是我在 RDFLib 中的尝试 import rdflib rdflib plugin reg
  • 静态方法中的 findViewById

    我有这个静态方法 public static void displayLevelUp int level Context context LayoutInflater inflater LayoutInflater context getS
  • 非阻塞文件读取

    如何以非阻塞模式读取二进制或文本文件的内容 对于二进制文件 当我open filename mode rb 我得到一个实例io BufferedReader 文档堡垒io BufferedReader read says 读取并返回 siz
  • 理解“finally”块

    我编写了七个测试用例来理解finally堵塞 背后的逻辑是什么finally works package core public class Test public static void main String args new Test
  • Zend 框架:元属性集成

    我正在尝试根据页面内容将一些元 采用以下格式 添加到页面的头部 使用headMeta gt appendName像这样 this gt view gt headMeta gt appendName og title some content