if ($node->type == 'x') 在 theme_upload_attachments 函数中不起作用

发布于 2024-10-19 01:08:24 字数 1057 浏览 0 评论 0原文

我希望上传文件的标题根据节点类型显示不同的文本。我重写了核心函数,将其复制到主题的 template.php 文件中,并将其重命名为 phptemplate_upload_attachments。

<?php
    function phptemplate_upload_attachments($files) {
        global $node;
        $header = array(t('Default text'), t('Size'));

        if ($node->type == 'orange') {
            $header = array(t('ORANGE CUSTOM TEXT'), t('Size'));
        }


        $rows = array();
        foreach($files as $file) {
            $file = (object)$file;
            if ($file->list && empty($file->remove)) {
                $href = file_create_url($file->filepath);
                $text = $file->description ? $file->description : $file->filename;
                $rows[] = array(l($text, $href), format_size($file->filesize));
            }
        }
        if (count($rows)) {
            return theme('table', $header, $rows, array('id' => 'attachments'));
        }
    }
?>

正如您所猜测的,我只添加了橙色节点类型的行,但它不起作用。我知道该函数已被正确覆盖,因为我测试了它更改了默认文本。另外,我清除了缓存,并尝试添加全局 $node。

为什么这不起作用?

I want the header for the uploaded files to display a different text depending on the node type. I overrided the core function copying it into my theme's template.php file and renamed it to phptemplate_upload_attachments.

<?php
    function phptemplate_upload_attachments($files) {
        global $node;
        $header = array(t('Default text'), t('Size'));

        if ($node->type == 'orange') {
            $header = array(t('ORANGE CUSTOM TEXT'), t('Size'));
        }


        $rows = array();
        foreach($files as $file) {
            $file = (object)$file;
            if ($file->list && empty($file->remove)) {
                $href = file_create_url($file->filepath);
                $text = $file->description ? $file->description : $file->filename;
                $rows[] = array(l($text, $href), format_size($file->filesize));
            }
        }
        if (count($rows)) {
            return theme('table', $header, $rows, array('id' => 'attachments'));
        }
    }
?>

As you can guess, I only added the line for the orange node type, but it does not work. I know the function is correctly overidden because I tested it changing the default text. Also, I cleared the cache, and i tried adding global $node.

Why is this not working?

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

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

发布评论

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

评论(1

莳間冲淡了誓言ζ 2024-10-26 01:08:24

$node 可用吗?试试这个:

$node = node_load(arg(1));

Is $node available? Try this:

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