Đường dẫn hình ảnh chính xác để sử dụng trong các tệp mẫu của chủ đề tùy chỉnh


7

Tôi đang tạo một chủ đề tùy chỉnh. Trong thư mục của chủ đề của tôi, có một imagesthư mục mà tôi đã đặt một số hình ảnh. Tôi muốn sử dụng những hình ảnh này trong các .tpl.phptệp mẫu ( ) khác nhau của mình bằng <img>thẻ HTML ... nhưng vấn đề là làm thế nào để tôi có được đường dẫn chính xác cho những hình ảnh này ( srcthuộc tính)?

Tôi đã tìm kiếm một lúc nhưng không nhận được bất kỳ giải pháp nào. Xin vui lòng giúp đỡ.

EDIT: Tôi đang sử dụng các url tốt đẹp (http://mydrupalsite.com/a/b/c/d) - nhập URL. Vì vậy, nếu hình ảnh srcbắt đầu bằng /(hoặc bất kỳ đường dẫn tương đối nào) thì nó sẽ bị vỡ.

Câu trả lời:


14

Tôi nghĩ rằng các chức năng này có thể hữu ích trong các mẫu của bạn:

print base_path() . path_to_theme();

path_to_theme () Trả lại đường dẫn đến phần tử theo chủ đề hiện tại. base_path () Đường dẫn cơ sở của bản cài đặt Drupal.

ví dụ, tôi có một hình ảnh được gọi bg-bar.pngtrong imagesthư mục trong thư mục mẫu của tôi được gọi garland. sau đó tôi có thể sử dụng base_path()path_to_theme()để có được đường dẫn đến hình ảnh, ví dụ bên trong node.tpl.php:

print '<img src="'.base_path() . path_to_theme() .'/images/bg-bar.png">';

Cập nhật: nếu bạn muốn sử dụng tên miền hiện tại, bạn có thể sử dụng global $base_root:

  $address = ''.base_path() . path_to_theme() .'/images/bg-bar.png';
  global $base_root;
  echo '<img src="' . $base_root . $address . '">';

Tôi hy vọng thông tin sẽ hữu ích.


Tôi đã thử tất cả những thứ này. Vấn đề là, base_path()trả về '/' - không hữu ích khi tôi sử dụng các url tốt (ví dụ: mysite.com/a/b/c ) - trong trường hợp này, nguồn hình ảnh trở thành '/ path-to-theme / .... ./image.png '- không hoạt động. Tôi cần phải sử dụng http://thay vì /trong nguồn hình ảnh tôi đoán.
Shafiul

Tôi cập nhật câu trả lời của tôi với thông tin liên quan với http://.
cigotete

Nếu bạn đang sử dụng 'các url tốt đẹp' tôi đoán rằng các url này được kiểm soát bởi một quá trình viết lại, vì vậy tôi nghĩ rằng bạn có thể thêm các ngoại lệ. Ví dụ, xem lại nếu từ .htaccesstệp bạn có thể kiểm soát quá trình viết lại này và thêm điều kiện tương ứng với RewriteCondđể loại trừ hình ảnh.
cigotete

Cảm ơn bạn! Tôi đã tìm kiếm một giải pháp cho vấn đề này!
1015214

0

Vì hình ảnh của tôi nằm trong một khối có điều kiện, cú pháp trên đã đặt ra một số vấn đề và cách sau đây có hiệu quả với tôi. Tuy nhiên, tôi không chắc có nên sử dụng từ góc độ bảo trì hay không:

src='<?php print base_path().path_to_theme().'/images/iphone.png' ?>'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.