【问题标题】:Adding images into blocks html将图像添加到块 html
【发布时间】:2010-08-04 15:53:33
【问题描述】:

我在我的 Blocks 内容中添加了一些 html 代码并启用了完整的 HTML 过滤器。

我为我的图片使用了相对路径,例如“sites/all/themes/zen/zen/image.png”

我想这是不正确的,因为我需要根据我在主页或“节点/ID”页面中更改我的路径。

我想我不能在块内使用 PHP,因此我不能使用 $base_url...如何仅使用 html 添加图像路径?

谢谢

【问题讨论】:

    标签: drupal drupal-6


    【解决方案1】:

    前面的答案提供了部分解决方案,但这里有一个更全面的独家新闻:

    手写 HTML

    如果您的网站位于 example.com(即它是“根”网站),那么正如其他人所建议的那样,在您的相对路径中添加正斜杠将解决问题:

    <img src="/sites/all/themes/zen/zen/image.png">
    

    但是,如果您的网站位于 example.com/my-drupal-site,那么您需要这样编写:

    <img src="/my-drupal-site/sites/all/themes/zen/zen/image.png">
    

    如果可以使用 PHP 来确定合适的路径,那就更好了。如果您从主题中调用图像,您可以使用 Drupal 函数drupal_get_path 来获取路径,如下所示:

    $img_path = drupal_get_path('theme', 'zen') . '/zen/image.png';
    

    然后您可能真的是 Drupaly 并使用 theme_image 函数为图像生成 HTML:

    $img = theme('image', $img_path, 'My Image - Alt Text', 'My Image - Title Text');
    

    $img 现在保存&lt;img&gt; 标记及其srcalttitle 属性的HTML。有关详细信息,请参阅 drupal_get_paththeme_image 的 API 文档。

    点击式解决方案

    正如 jeffreymb 所指出的,您最简单的选择是结合使用 WYSIWYG 编辑器和称为 IMCE 的内置文件处理模块来为您掩盖所有这些细节。 如果您无法访问“PHP 代码”输入格式,这是最好的解决方案。

    所以,步骤:

    1. 安装所见即所得模块,以及所见即所得编辑器(我建议使用 CKEditor)。
    2. 安装 IMCE 模块和 IMCE WYSIWYG Bridge 模块,并在可用按钮的配置设置中为您的所见即所得编辑器启用 IMCE 按钮。

    See this post 了解有关该设置过程的更多详细信息,并确保阅读 WYSIWYG 模块在其配置页面上显示的文档。

    一旦您安装了 IMCE 并与您的 WYSIWYG 集成,当您单击 WYSIWYG 工具栏中的“图像”按钮时,您的正常对话框应该会出现,但会出现一个新的小图标来打开 IMCE 文件浏览器。此文件浏览器允许您浏览 files 文件夹中的图像或上传新文件。它还支持少量图像处理,并在您选择图像后自动生成必要的 HTML。

    【讨论】:

      【解决方案2】:

      我建议在这种情况下使用Pathologic module。它是一个过滤器,您可以将其添加到输入格式中,以使用您网站的基本 URL 将类似的相对 URL 转换为正确的 URL。此外,如果您的 RSS 内容中有图像,因为重新发布内容的网站(如提要聚合器等)具有指向完整 URL 的链接,这将非常有用。

      【讨论】:

        【解决方案3】:

        我使用 CKeditor 和 IMCE 模块在我的网站上执行此操作。

        它非常用户友好,设置起来并不难。

        【讨论】:

          【解决方案4】:

          使用绝对路径代替相对路径。所以应该是:

          <img src="/sites/all/themes/zen/zen/image.png">
          

          注意开头的斜线。斜线应该是您将现有相对路径转换为绝对路径以用于直接 HTML 的唯一操作。

          【讨论】:

            【解决方案5】:

            如果您的图像路径以斜线开头(“/sites/all/themes/zen/zen/image.png”),这将始终相对于您的 drupal 根目录。

            您也可以简单地选择“PHP 代码”作为输入格式,并按照您所说的使用 $base_url。

            【讨论】:

              【解决方案6】:

              我用 cck blocks 来做这件事。 cck blocks是drupal模块,可以将drupal字段放入blocks中

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2020-07-02
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2018-04-26
                • 2015-06-20
                相关资源
                最近更新 更多