Получаем путь к теме и публичным файлам

При темизации шаблонов нам может понадобиться вставить в них путь к теме или к публичным файлам.

Вот живой пример использования пути к теме — подключение css файла для Internet Explorer 7 версии:

  1. <!--[if IE 7]>
  2.         <link href="<?php echo base_path() . path_to_theme(); ?>/css/ie7.css" rel="stylesheet" type="text/css">
  3. <![endif]-->

Но вся эта история работает в зависимости от того, где вызывается. Тоесть, если мы вызовем эту функцию из шаблона поля, то получим жесткий облом. Поэтому, вместо path_to_theme() можно использовать перменную $directory нужно функцию drupal_get_path('theme', 'имяТемы'), а еще лучше универсальный вариант

drupal_get_path('theme',$GLOBALS['theme'])

Получить путь к публичным файлам можно вот так, в том числе и абсолютный путь:

  1. print variable_get('file_public_path', conf_path() . '/files');
  2. // выдаст: sites/default/files
  3.  
  4. print drupal_realpath(file_default_scheme() . '://');
  5. // выдаст: /var/www/drupal/sites/default/files
  6.  
  7. print realpath(".");
  8. // выдаст: /var/www/drupal

Еще вариант

  1. file_create_url('public://');
  2. file_create_url('private://');

и еще для абсолютных путей

  1. drupal_realpath('public://');
  2. // returns e.g. /var/www/drupal/sites/default/files
  3.  
  4. drupal_realpath('private://');
  5. // returns e.g. /var/www/drupal/sites/default/files_private