2011-06-13 2 views
1

Я хотел бы показать ссылку изображения (изображение на моем сервере) в блоке PHP (Drupal 7). Когда я положилТривиальный URL главной страницы в PHP-вопросе

<?php 
print '<p align="right"><a href="http://something.com"> <img src="'.$front_page.'/misc/something.png">Caption</a>'; 
?> 

это работает, но изображение можно увидеть только на первой странице, а другие - на неработающей ссылке. Зачем? Что я должен добавить к этой конкатенации, чтобы заставить ее работать и не помещать URL-адрес жестко заданной страницы?

Любая помощь будет оценена по достоинству.

+0

Какова стоимость $ front_page? –

+0

Хммм, как 'print $ front_page'? Нет ничего – Gawi

+0

В обоих случаях пуст (первая страница и другие страницы со сломанным путем)? –

ответ

1

В Drupal вы можете пропустить его через url(), чтобы получить правильный путь, то есть url('misc/something.png').

+0

Отлично, спасибо, что это работает. – Gawi

0

Лучший способ устранить эту проблему - посмотреть атрибут src на странице при видимом изображении и сравнить его с атрибутом src на странице, когда изображение не видно. Различия могут быть очевидными.

Если это не решит проблему, проверьте, использует ли один из ваших страниц тег <base>. Это может привести к непредвиденному добавлению данных в ваш путь к изображению.

+0

Хорошо, теперь я вижу разницу - он добавляет «узел» после URL главной страницы, но как я могу это исправить? – Gawi

+0

Простым, некодирующим способом является создание псевдонима каталога из «узла» в ваш каталог изображений. Тогда все запросы (независимо от пути) окажутся в одном и том же месте. Альтернативой является погружение в код для определения того, что добавляет строку «node». –

+0

Хорошо, спасибо за помощь. Я ценю это. – Gawi

0

@Gawi. Если возможно, вы должны действительно использовать API Drupal для добавления ссылок, изображений и т. Д. Вместо их жесткого кодирования. Например:

<?php 
    GLOBAL $base_url; 
    $variables = array('path' => $base_url . '/misc/blog.png', 'alt' => 'something.com logo'); 

    print '<p align="right">' . l(theme('image', $variables) . 'Caption', $base_url, array('html' => TRUE)). '</p>'; 
?> 

Документация по переменным/используемых функций:

+0

спасибо! Я буду держать это в голове :) – Gawi

Смежные вопросы