将图像添加到块html中

ane*_*yzm 4 drupal drupal-6

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

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

我想这不正确,因为我需要根据我在主页或"node/id"页面中更改路径.

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

谢谢

sem*_*ros 9

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

手写HTML

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

<img src="/sites/all/themes/zen/zen/image.png">
Run Code Online (Sandbox Code Playgroud)

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

<img src="/my-drupal-site/sites/all/themes/zen/zen/image.png">
Run Code Online (Sandbox Code Playgroud)

如果您可以使用PHP来确定适当的路径,那确实更好.如果您正在从主题调用图像,则可以使用Drupal函数drupal_get_path来获取如下所示的路径:

$img_path = drupal_get_path('theme', 'zen') . '/zen/image.png';
Run Code Online (Sandbox Code Playgroud)

然后你可能真的是Drupaly关于它并使用该theme_image函数为图像生成HTML:

$img = theme('image', $img_path, 'My Image - Alt Text', 'My Image - Title Text');
Run Code Online (Sandbox Code Playgroud)

$img现在拥有了在HTML <img>标签及其src,alttitle属性.有关更多信息,请参阅drupal_get_paththeme_image的API文档.

点击式解决方案

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

那么,步骤:

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

有关该设置过程的更多详细信息,请参阅此文章,并确保阅读WYSIWYG模块在其配置页面上显示的文档.

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