Поиск пути к файлу в drupal - PullRequest
1 голос
/ 26 июля 2010

Я разработчик php, и я новичок в drupal. Я установил сайт drupal.

Для обычных php сайтов. мы можем найти имя файла из пути браузера, для модификации например:

URL браузера: www.mysite.com/test/upload.php

Путь к файлу: test / upload.php.

для друпалов: http://localhost/mydreamhouse/article/557 что такое путь к файлу?

для друпалов: http://localhost/mydreamhouse/newslist что такое путь к файлу?

Есть ли какой-нибудь общий способ найти путь к файлу в drupal? Или можно описать поток страниц?

Ответы [ 5 ]

5 голосов
/ 26 июля 2010

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

2 голосов
/ 26 июля 2010

Путь к файлу всегда index.php (за исключением нескольких исключений, таких как install.php и cron.php). Вы можете отключить настройку чистых URL, чтобы лучше понять путь, по которому вы смотрите. С включенными чистыми URL-адресами происходит некоторое переписывание, чтобы создать красивые URL-адреса.

В вашем случае http://localhost/mydreamhouse/article/557 на самом деле http://localhost/mydreamhouse/index.php?q=article/557. Другими словами, вызывается скрипт index.php, который, в свою очередь, будет интерпретировать переменную $_GET['q'] для обслуживания нужной страницы.

1 голос
/ 11 августа 2012
getcwd() . base_path() . $file->filepath

getcwd() - путь сервера к webroot

base_path() - путь к приложению drupal (если приложение в корне будет /)

$file->filepath - любой файлпуть (например, сайты / все / по умолчанию / файлы /...)

0 голосов
/ 06 апреля 2011
// path to Drupal dir - don't use $_SERVER['DOCUMENT_ROOT'] - drush commands will fail
getcwd()

// path to config folder - e.g. /sites/default/settings.php
getcwd() . conf_path();  // see conf_path() for details

// path to config file in module folder
getcwd() . drupal_get_path('module','configure') . '/config.yaml'
0 голосов
/ 27 июля 2010

Как уже упоминалось в других ответах, нет файлов или потока страниц. index.php принимает значения $_GET['q'] и вызывает соответствующие функции для динамического генерирования страниц.

Вы можете использовать $_GET['q'] для доступа к этим частям URL-адреса "путь к файлу", но более Drupal способ - использовать arg(), например, с путем http://localhost/node/5, вы можете получить доступ к node с вызовом на arg(0) и 5 с вызовом на arg(1). Это способ Drupaly для доступа к этим частям URL.

Drupal также предоставляет служебные функции для доступа к базовому пути. Функция L l() форматирует ссылки и также заботится о базовом пути (вы просто пишете относительные ссылки, при необходимости добавляете базовый путь); base_path() вернет глобал с тем же именем; drupal_get_path() принимает некоторые дополнительные специфичные для Drupal аргументы и генерирует пути к таким вещам, как модули и темы, с учетом базового пути.

Вы искали дополнительную информацию? Уточните свой вопрос на основе этих ответов и ознакомьтесь с документацией API Drupal: http://api.drupal.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...