summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/bootstrap.inc4
-rw-r--r--includes/common.inc15
-rw-r--r--includes/theme.inc14
3 files changed, 20 insertions, 13 deletions
diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index c0139d06d..3ffd4dbc1 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -678,11 +678,13 @@ function _drupal_bootstrap($phase) {
switch ($phase) {
case DRUPAL_BOOTSTRAP_DATABASE:
- global $db_url, $db_prefix, $base_url;
+ global $db_url, $db_prefix, $base_url, $base_path;
$conf = array();
require_once './' . conf_init() .'/settings.php';
require_once './includes/database.inc';
// Initialize the default database.
+ $parts = parse_url($base_url);
+ $base_path = (isset($parts['path']) ? $parts['path'] . '/' : '/');
db_set_active();
break;
diff --git a/includes/common.inc b/includes/common.inc
index 6c195b8e0..9f82fe440 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -114,11 +114,10 @@ function drupal_set_html_head($data = NULL) {
* Retrieve output to be displayed in the head tag of the HTML page.
*/
function drupal_get_html_head() {
- global $base_url;
+ global $base_path;
$output = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n";
- $output .= "<base href=\"$base_url/\" />\n";
- $output .= theme('stylesheet_import', 'misc/drupal.css');
+ $output .= theme('stylesheet_import', $base_path .'misc/drupal.css');
return $output . drupal_set_html_head();
}
@@ -919,7 +918,7 @@ function url($path = NULL, $query = NULL, $fragment = NULL, $absolute = FALSE) {
return $path . $fragment;
}
- global $base_url;
+ global $base_url, $base_path;
static $script;
static $clean_url;
@@ -935,7 +934,7 @@ function url($path = NULL, $query = NULL, $fragment = NULL, $absolute = FALSE) {
$clean_url = (bool)variable_get('clean_url', '0');
}
- $base = ($absolute ? $base_url .'/' : '');
+ $base = ($absolute ? $base_url . '/' : $base_path);
// The special path '<front>' links to the default front page.
if (isset($path) && $path != '<front>') {
@@ -1134,13 +1133,15 @@ function drupal_add_link($attributes) {
* depends on the 'killswitch' inside it.
*/
function drupal_add_js($file) {
+ global $base_path;
static $sent = array();
+
if (!isset($sent['misc/drupal.js'])) {
- drupal_set_html_head('<script type="text/javascript" src="misc/drupal.js"></script>');
+ drupal_set_html_head('<script type="text/javascript" src="'. $base_path .'misc/drupal.js"></script>');
$sent['misc/drupal.js'] = true;
}
if (!isset($sent[$file])) {
- drupal_set_html_head('<script type="text/javascript" src="'. check_url($file) .'"></script>');
+ drupal_set_html_head('<script type="text/javascript" src="'. check_url($base_path . $file) .'"></script>');
$sent[$file] = true;
}
}
diff --git a/includes/theme.inc b/includes/theme.inc
index 3673e921c..1894d2a16 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -280,7 +280,7 @@ function theme_get_settings($key = NULL) {
* The value of the requested setting, NULL if the setting does not exist.
*/
function theme_get_setting($setting_name, $refresh = FALSE) {
- global $theme_key;
+ global $theme_key, $base_path;
static $settings;
if (empty($settings) || $refresh) {
@@ -298,11 +298,12 @@ function theme_get_setting($setting_name, $refresh = FALSE) {
}
if ($settings['toggle_logo']) {
+ $settings['logo'] = $base_path;
if ($settings['default_logo']) {
- $settings['logo'] = dirname($theme_object->filename) .'/logo.png';
+ $settings['logo'] .= dirname($theme_object->filename) .'/logo.png';
}
elseif ($settings['logo_path']) {
- $settings['logo'] = $settings['logo_path'];
+ $settings['logo'] .= $settings['logo_path'];
}
}
@@ -330,10 +331,12 @@ function theme_get_setting($setting_name, $refresh = FALSE) {
* drupal_set_html_head() to enforce the correct CSS cascading order.
*/
function theme_add_style($path = '', $media = 'all') {
+ global $base_path;
static $styles = array();
+
if ($path && !isset($styles["$media:$path"])) {
$style = new stdClass();
- $style->path = $path;
+ $style->path = $base_path. $path;
$style->media = $media;
$styles["$media:$path"] = $style;
}
@@ -511,9 +514,10 @@ function theme_links($links, $delimiter = ' | ') {
* A string containing the image tag.
*/
function theme_image($path, $alt = '', $title = '', $attributes = NULL, $getsize = TRUE) {
+ global $base_path;
if (!$getsize || (is_file($path) && (list($width, $height, $type, $image_attributes) = @getimagesize($path)))) {
$attributes = drupal_attributes($attributes);
- return '<img src="'. check_url($path) .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. $image_attributes . $attributes .' />';
+ return '<img src="'. check_url($base_path. $path) .'" alt="'. check_plain($alt) .'" title="'. check_plain($title) .'" '. $image_attributes . $attributes .' />';
}
}