После include из функции не работают некоторые переменные или установка SPAW editor

Серёга

Новичок
После include из функции не работают некоторые переменные или установка SPAW editor

В общем вот в чем трабл. Многие знают WYSIWYG систему SPAW.
Решил я встроить её в свою CMS.
Система моя построена на классах. В частности есть класс content.
В этом классе есть функция content_edit, в которой располагается <textarea> для ввода инфы.
Вот я хочу её заменить этим редактором.
Сделал я в этой функции
PHP:
include $wysiwyg_path.'spaw_control.class.php';
$wysiwyg_path - это глобальная переменная пути к SPAW.
Но теперь получается такая лажа. Файл-то инклудится.
Кто видел структуру файла spaw_control.class.php, так там в начале идут такие строки
PHP:
if (preg_match("/:\/\//i", $spaw_root)) die ("can't include external file");

include $spaw_root.'config/spaw_control.config.php';
include $spaw_root.'class/util.class.php';
include $spaw_root.'class/toolbars.class.php';
include $spaw_root.'class/lang.class.php';
первой иклудится конфиг файл spaw_control.config.php, в котором есть глобальные переменные
PHP:
// directory where spaw files are located
$spaw_dir = $wysiwyg_path;

// base url for images
$spaw_base_url = $wysiwyg_root;

if (!ereg('/$', $HTTP_SERVER_VARS['DOCUMENT_ROOT']))
  $spaw_root = $HTTP_SERVER_VARS['DOCUMENT_ROOT'].$spaw_dir;
else
  $spaw_root = $HTTP_SERVER_VARS['DOCUMENT_ROOT'].substr($spaw_dir,1,strlen($spaw_dir)-1);
так вот переменная $HTTP_SERVER_VARS['DOCUMENT_ROOT'] тут почему-то не имеет никакого значения. Из-за этого пути становятся некорректными во всём редакторе. Почему это так?
 

Серёга

Новичок
Фанат
так дело в том, что в функции content_edit переменная $HTTP_SERVER_VARS объявлена как global. И в этой функции же и идёт include.
 

Фанат

oncle terrible
Команда форума
во-первых, а до вызова-то функции content_edit она видна?
во-вторых, глобал - это единственный способ? Дальше ты ниасилил?
 

Серёга

Новичок
Фанат
ты прав, я слажал.
объявил глобальной $HTTP_POST_VARS а не $HTTP_SERVER_VARS и не заметил.
Теперь работает эта переменная, но возникла лажа №2.

В файле spaw_control.class.php есть класс SPAW_Wysiwyg в котором разные функции. Так вот объявляя в этих функция глобальные переменные из spaw_control.config.php, они не показываются, однако до объявления класса всё нормально.
 

Фанат

oncle terrible
Команда форума
лажа у тебя только одна.
ы не понимаешь, что такое область видимости переменной.
читай текст по ссылке
 

Фанат

oncle terrible
Команда форума
тебе не кажется, что эти два утверждения несколько противоречат друг другу?
 

Серёга

Новичок
нет.
я же привел пример, где просто должны эти переменные быть видны.
 

Фанат

oncle terrible
Команда форума
не вижу никакого примера.
какие-то куски кода и беллетристика.
напиши тестовый пример из 5 строчек
 

Серёга

Новичок
ok

вот текст.

файл config.php
[гигабайт кода поскипан]


так вот смотри.
в файле spaw_control.class.php есть класс SPAW_Wysiwyg

так вот смотри, если сделать например echo $spaw_dir до его объявления - всё работает, но если сделать то же самое в его функции, где $spaw_dir объявлена как global, то шиш. Вот о чем я.
 

Фанат

oncle terrible
Команда форума
до чего же тяжело общаться со слепыми людьми.
Ну ладно, допустим, правила форума ты не читал.
но хотя бы вот это видел?
напиши тестовый пример из 5 строчек
здесь написано ПЯТЬ! А не пятьсот.
 
Сверху