Добавление изображений в блоки html - PullRequest
4 голосов
/ 04 августа 2010

Я добавил html-код в содержимое блоков и включил полный HTML-фильтр.

Я использовал относительные пути для своих изображений, например, "sites / all / themes / zen / zen / image.png"

Полагаю, это не правильно, потому что мне нужно изменить пути в зависимости от того, нахожусь ли я на домашней странице или на странице "node / id".

Полагаю, я не могу использовать PHP внутри блоков, поэтому я не могу использовать $ base_url ... как добавить путь к изображениям только с html?

спасибо

Ответы [ 6 ]

9 голосов
/ 04 августа 2010

Предыдущие ответы предоставляют часть решения, но вот более полный совок:

Рукописный HTML

Если ваш сайт живет на example.com (то есть это «root»)сайт), тогда добавление косой черты к вашему относительному пути решит проблему, как другие предложили:

<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 теперь содержит HTML-код для тега <img> и его атрибутов src, alt и title.См. Документацию API для drupal_get_path и theme_image для получения дополнительной информации.

Решение «укажи и щелкни»

Как указывает Джеффреймб, самая простая ставкаиспользовать комбинацию WYSIWYG-редактора и встроенного модуля обработки файлов IMCE, чтобы скрыть все эти детали для вас. Если у вас нет доступа к формату ввода «PHP-код», это лучшее решение.

Итак, шаги:

  1. Установите WYSIWYGмодуль, а также редактор WYSIWYG (я предлагаю CKEditor).
  2. Установите модуль IMCE и модуль IMCE WYSIWYG Bridge и включите кнопку IMCE для вашего редактора WYSIWYG в настройках конфигурации для доступных кнопок.

См. Этот пост , чтобы немного подробнее узнать об этом процессе установки, и обязательно прочитайте документацию, которую модуль WYSIWYG отображает на странице конфигурации.

После того, как выЕсли IMCE установлен и интегрирован с WYSIWYG, при нажатии кнопки «Изображение» на панели инструментов WYSIWYG должно появиться обычное диалоговое окно, но с новым небольшим значком, чтобы открыть браузер файлов IMCE.Этот файловый браузер позволяет вам просматривать в папке files изображения или загружать новые файлы.Он также поддерживает несколько манипуляций с изображениями и автоматически генерирует необходимый HTML после того, как вы выбрали изображение.

2 голосов
/ 05 августа 2010

Я бы рекомендовал использовать Патологический модуль для этого случая. Это фильтр, который вы можете добавить в свои форматы ввода, чтобы преобразовывать относительные URL-адреса, подобные этому, в правильные URL-адреса, используя базовый URL-адрес вашего сайта. Кроме того, это полезно, если у вас есть изображения в вашем контенте RSS, поскольку сайты, которые повторно публикуют контент (например, агрегаторы каналов и т. Д.), Имеют ссылку на полный URL.

0 голосов
/ 27 октября 2016

Я делаю это с cck blocks . Блоки cck - это модуль drupal, он может помещать поля drupal в блоки

0 голосов
/ 04 августа 2010

Если вы начнете пути к изображениям с косой черты ("/sites/all/themes/zen/zen/image.png"), это всегда будет относительно вашего корневого каталога drupal.

Вы также можетепросто выберите «PHP code» в качестве формата ввода и используйте $ base_url, как вы говорите.

0 голосов
/ 04 августа 2010

Вместо относительного пути используйте абсолютный путь. Так было бы:

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

Обратите внимание на косую черту в начале. Косая черта должна быть единственной вещью, которую вам нужно сделать, чтобы преобразовать существующие относительные пути в абсолютные для использования в прямом HTML.

0 голосов
/ 04 августа 2010

Я использую модули CKeditor и IMCE, чтобы сделать это на своих сайтах.

Это очень удобно и не так сложно в настройке.

...