Php Drupal7-如何正确使用预处理函数?

Php Drupal7-如何正确使用预处理函数?,php,drupal,drupal-7,Php,Drupal,Drupal 7,在我的page.tpl.php中,我有以下代码,这在后端造成了一些麻烦。因此,我想用更好的方法解决它,使用预处理函数 if (!path_is_admin(current_path())) { $pathArray = explode('/', current_path()); if (!empty($pathArray)) { $path_to_node = url(

在我的page.tpl.php中,我有以下代码,这在后端造成了一些麻烦。因此,我想用更好的方法解决它,使用预处理函数

if (!path_is_admin(current_path())) {
                    $pathArray = explode('/', current_path());
                    if (!empty($pathArray)) {
                        $path_to_node = url("node/".$pathArray[1]);
                        $img = '<img src="'.$theme_path.'/images/default.png" alt="Default" />';                        
                        if (!empty($path_to_node)) {
                            $menuChildArray = explode('/', $path_to_node);
                            if (!empty($menuChildArray[2])) {
                                $menuParent = $menuChildArray[2];
                                    switch($menuParent) {
                                        case "one":
                                        $img = '<img src="'.$theme_path.'/images/one.png" alt="Pic tne!" />';
                                        break;

                                        case "two":
                                        default:
                                        $img = '<img src="'.$theme_path.'/images/two.png" alt="Pic two!" />';
                                        break;
                                    }

                            }
                        print $img;                         
                        }
                    }
                }
在page.tpl.php中,我做了:

<?php
    print $set2015_pics;

假设set2015是主题的名称,一切看起来都很好,因此使用drush或在config/development/performance清除缓存应该会使变量显示出来。如果set2015不是主题的名称,则将函数set2015_preprocess_页面重命名为YOURTHEME_preprocess_页面

调试它。添加一些
echo“我在这里”先在上面
如果
,然后在下面吼叫,然后在第二个
如果
之后,依此类推…以查看执行了什么和没有执行什么。尝试将问题本地化

<?php
    print $set2015_pics;