【问题标题】:Drupal 7. Adding images to a node with PHPDrupal 7. 使用 PHP 将图像添加到节点
【发布时间】:2012-05-10 18:27:23
【问题描述】:

有没有办法以编程方式从特定文件路径添加一组图像?我想从我的 drupal 站点的一个文件夹中添加所有图像并向它们添加fancybox 样式,可以这样做吗?我试过在 drupal.org 上查找,但没有成功。感谢您的帮助。

【问题讨论】:

    标签: php image drupal drupal-7


    【解决方案1】:

    当然可以,只需启用 php 过滤器模块,并将执行此操作的 php 代码放在节点的主体中。确保将正文的格式设置为 PHP,而不是纯文本或 html。

    因此,如果图像在您的主题文件夹中,您可以使用以下方法抓取并显示它:

    <img src="<?php print path_to_theme() . "/files/image.jpg"; ?>" title='some image'/>
    

    您可以使用 php 的 scandir 函数获取目录中的所有文件。此函数将返回文件目录中所有文件的数组,之后您可以遍历该数组并将所有图像文件输出到屏幕,如下所示:

    $files = scandir("path/to/files/dir");
    /*Unset the first 2 items in the array since they contain . and .. respectively */
    unset($files[0]);
    unset($files[1]);
    foreach($files as $file)
    {
        /* 
          Here we get the file extension 
          If the value of $file = "photo.jpeg"; this returns "jpeg"
        */
        $f_ext =  end(explode(‘.’, $file));   
        /*Checking if file is an image*/
        if($f_ext == 'jpg' || $f_ext == 'png' || $f_ext == 'gif'|| $f_ext == 'jpeg')
        {
             print "<img src='<?php print "path/to/files/$file"; ?>' title='some image'/>";
        }
    }
    

    【讨论】:

    • 你好,约书亚。我已经走到那一步了。例如,如果我有已上传到主题的“文件”文件夹的图像,并且我想在我的一个节点页面上显示所有这些图像,那么我将使用什么 PHP 代码。同样,我使用的是 Drupal 7 核心。谢谢。
    • 嘿,为你添加了这个答案
    • 谢谢,约书亚。有没有一种特殊的方法可以将其作为数组来执行。我想尝试显示文件夹中包含的所有图像。非常感谢您的帮助。
    • 嗨,约书亚。对不起,我一直用这个来烦你。我无法让它正常工作。我尝试了上面的代码没有成功。我将列出我为自定义您提供的代码所做的工作,并为您提供所显示的错误。 1)我将 path/to/files 更改为我已经测试和工作的图像路径,在上面的变量和 print path 中。 2) 我用 包装了代码。 3)我根本没有改变if语句参数,我需要吗?此错误继续显示:解析错误:语法错误,theme-site\modules\php\php.module(80) 中的意外 T_STRING:第 8 行的 eval() 代码
    • 嘿,伙计,我不是故意不尊重他人或任何事情。但是,如果您无法理解我更新的上述代码,我建议您阅读一本 php 书籍,最好是一本可以让您从基础到中级的书。 :) 一切顺利
    猜你喜欢
    • 2012-02-11
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    相关资源
    最近更新 更多