将图像添加到块html中

时间:2010-08-04 15:53:34

标签: drupal drupal-6

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

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

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

我想我不能在块里面使用PHP,因此我不能使用$ base_url ...如何只用html添加图片路径?

感谢

6 个答案:

答案 0 :(得分:9)

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

手写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现在包含<img>标记及其srcalttitle属性的HTML。有关详细信息,请参阅drupal_get_paththeme_image的API文档。

点击解决方案

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

所以,步骤:

  1. 安装WYSIWYG模块,以及WYSIWYG编辑器(我建议使用CKEditor)。
  2. 安装IMCE模块和IMCE WYSIWYG Bridge模块,并在其配置设置中为可用按钮启用WYSIWYG编辑器的IMCE按钮。
  3. See this post了解有关该设置过程的更多详细信息,并确保阅读WYSIWYG模块在其配置页面上显示的文档。

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

它非常人性化,并且设置起来并不困难。

答案 3 :(得分:0)

使用绝对路径而不是相对路径。所以它是:

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

注意开头的斜线。斜杠应该是将现有的相对路径转换为绝对路径以便在直接HTML中使用时唯一需要做的事情。

答案 4 :(得分:0)

如果您使用斜杠(“/sites/all/themes/zen/zen/image.png”)启动图像路径,这将始终相对于您的drupal根目录。

你也可以选择“PHP代码”作为输入格式,并按照你的说法使用$ base_url。

答案 5 :(得分:0)

我使用cck blocks执行此操作。 cck块是drupal模块,它可以将drupal字段放入块中