1

我有分类术语层次结构,我将它们用作视图中的过滤器。它在选择框中显示层次结构,但子术语以连字符 (-) 出现。我试图在表单更改中删除连字符,我做到了,但我无法替换它的空格。

if ($form_id == 'views_exposed_form') {
        $i = 0;
        foreach ($form['field_region_tid']["#options"] as $op) {
            foreach ($op->option as $key => $arr) {
                if ($arr != null) {
                    $form['field_region_tid']["#options"][$i]->option[$key] = str_replace("-"," ", $arr);

                }

            }
            $i++;
        }

    }

如何在子选项的开头放置空格。还是我应该采取其他方式?谢谢!

4

2 回答 2

0

从 form_id 我知道它是由视图生成的表单。如果是这样,则if条件内的代码永远不会被调用,因为由于两个模块的权重,您的模块在视图模块之后执行。要解决这个问题:

  1. 打开您的数据库管理器(大多数情况下为 PhpMyAdmin)并打开system表。

  2. 然后将模块的权重更改为大于 10,因为它是视图模块的默认权重,您需要在视图模块之后执行模块。

希望这会有所帮助……穆罕默德。

于 2012-11-15T12:10:03.867 回答
0

如果问题是当你的钩子被调用时,答案就在于

hook_module_implements_alter()

但不是你说的那样。你的代码看起来不错,你试过了吗

str_replace("-"," ", $arr);

?

于 2013-02-19T12:27:52.480 回答