替换 Views2 基本字段处理程序

发布于 2024-10-16 15:43:50 字数 493 浏览 4 评论 0原文

我想向 Views2 字段处理程序添加一些呈现选项(类似于“将此字段输出为链接”或“重写此字段的输出”),以更好地控制 HTML 标记的呈现(我需要向标记添加一些额外的属性)。我希望所有(或至少大多数字段)都可以使用此附加选项。是否可以用我自己的字段处理程序替换默认的Views2字段处理程序(即views_handler_field类)?有一个用于提交自己的处理程序的钩子(hook_views_handlers),还有一个用于告诉其他模块应该为给定字段使用什么处理程序的钩子(hook_views_data_alter)。我也没有找到覆盖 view_handler_field 及其后代的默认继承模式的方法。用我自己的类扩展其他模块提供的每个字段处理程序似乎毫无意义。我说这不是解决这个问题的正确方法吗?

如果我是对的,那么另一种方法是什么(1)使用一些输入扩展字段选项表单以及(2)根据输入改变该字段的呈现。我猜想(1)可以通过默认 Drupal 钩子更改表单来实现,但是渲染方法属于给定的字段处理程序,并且我没有看到拦截其调用和输出更改标记的方法。

I want to add some rendering options to Views2 field handler (similar to 'Output this field as link' or 'Rewrite the output of this field') for a greater control over rendering of HTML markup (I need to add some extra attributes to tags). I want this additional options to be available for all (or at least most of the fields). Is it possible to replace default Views2 field handler (i.e. views_handler_field class) with my own field handler? There is a hook for submitting own handlers (hook_views_handlers) and there is a hook to tell other modules what handler should be used for given field (hook_views_data_alter). I also don't see a way to override default inheritance pattern for view_handler_field and its descendants. And extending every single field handler provided by other modules with my own classes seems to be pointless. Am I right saying that this cannot be the right way to solve this problem?

If I am right, what is another way to (1) extend field options form with some inputs and (2) alter rendering of this field based on inputs. I guess (1) could be achieved by altering form by default Drupal hook, but render method belongs to given field handler and I don't see a way to intercept its call and output altered markup.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

带上头具痛哭 2024-10-23 15:43:50

理论上,您可以使用不存在的 hook_views_handlers_alter 来更改某处类的路径

In theory you could use a non-existant hook_views_handlers_alter to change the path of a class which is somewhere

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文