drupal_get_filename

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

includes/bootstrap.inc, строка 422

Версии
5 – 6
drupal_get_filename($type, $name, $filename = NULL)

Возвращает и опционально устанавливает имя файла системного элемента (модуль, тема, и т.д.). Имя файла, который существует, кеширован или получен из базы данных, возвращается если файл существует.

Эта функция использует ключи установленных в Друпале ресурсов (модули и темы), которые могут находится в различных местах в соответствии с конфигурацией сайта. Например модуль 'foo' может находится в одном из трех мест:

modules/foo/foo.module
sites/all/modules/foo/foo.module
sites/example.com/modules/foo/foo.module

Вызов функции drupal_get_filename('module', 'foo') возвратит одн из вышеуказанных путей в зависимости от положения модуля.

Параметры

$type Тип элемента (напр., тема, движок темизации, модуль).

$name The name of the item for which the filename is requested.

$filename The filename of the item if it is to be set explicitly rather than by consulting the database.

Возвращаемое значение

The filename of the requested item.

▾ 5 функции вызывают drupal_get_filename()

drupal_get_path in includes/common.inc
Возвращает адрес системного элемента (модуль, тема и т.п.)
drupal_install_system in includes/install.inc
Callback to install the system module.
drupal_load in includes/bootstrap.inc
Подключает файл с заданным именем и типом. Эта функция предотвращает подключение тем, движков, модулей и т.п. более чем один раз.
module_list in includes/module.inc
Генерирует список всех загруженных модулей. В ходе инициализации (бутстрапа), возвращает только жизненно важные модули. Смотри bootstrap.inc
system_modules_uninstall_confirm_form in modules/system/system.admin.inc
Confirm uninstall of selected modules.

Код

<?php
function drupal_get_filename($type, $name, $filename = NULL) {
  static $files = array();

  if (!isset($files[$type])) {
    $files[$type] = array();
  }

  if (!empty($filename) && file_exists($filename)) {
    $files[$type][$name] = $filename;
  }
  elseif (isset($files[$type][$name])) {
    // nothing
  }
  // Verify that we have an active database connection, before querying
  // the database.  This is required because this function is called both
  // before we have a database connection (i.e. during installation) and
  // when a database connection fails.
  elseif (db_is_active() && (($file = db_result(db_query("SELECT filename FROM {system} WHERE name = '%s' AND type = '%s'", $name, $type))) && file_exists($file))) {
    $files[$type][$name] = $file;
  }
  else {
    // Fallback to searching the filesystem if the database connection is
    // not established or the requested file is not found.
    $config = conf_path();
    $dir = (($type == 'theme_engine') ? 'themes/engines' : "${type}s");
    $file = (($type == 'theme_engine') ? "$name.engine" : "$name.$type");

    foreach (array("$config/$dir/$file", "$config/$dir/$name/$file", "$dir/$file", "$dir/$name/$file") as $file) {
      if (file_exists($file)) {
        $files[$type][$name] = $file;
        break;
      }
    }
  }

  if (isset($files[$type][$name])) {
    return $files[$type][$name];
  }
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему