Здраствуйте форумчани. Появился такой вопрос. Как мне в хидер (у файле, который созлданный мной) подключить что нибудь друпаловское для работы с базой. Я знаю что подключается с помощью druapl_add(), но что подключать не знаю.
Причина вопроса: при выполнении кода из файла появляется сообщение Undefined function: db_query.
Т.е. Суть вопроса такова: ЧТО работает с базой в друпале и как сего щастье подключить в написанный мной файл ?
Спасибо.
Комментарии
Какбэ, для подобных вещей пишутся модули. К чему это сиротство с файлом?
Какбэ так...
<?php
define('DRUPAL_ROOT', '/var/www/drupal'); //абсолютный путь
chdir(DRUPAL_ROOT);
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
?>
А вдруг забудите при переносе? Я вот как раз мучаюсь.
либо не такой методл, в чем по сути сомневаюсь, либо не тот файл, на что я думаю больше.. все еще не распознает функции db_query()
И так.... вот код куда я вствлял
chdir(DRUPAL_ROOT);
require_once (DRUPAL_ROOT . '/includes/bootstrap.inc');
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$UCreate -> AddNewProperty($_POST['name_property'], $_POST['value_property']);
и сама функция:
public function AddNewProperty($propName, $propValue)
{
...
$sql = "INSERT INTO aa_property VALUES ('".self::$arInfoTovar['uid']."', '".self::$arInfoTovar['uid']."-".self::$arInfoTovar['id_tovar']."', '".$propName."::".$propValue."', '2')";
db_query($sql);
...
}
Ошибка: Fatal error: Call to undefined function db_query() in
Такс, ладно, я обрисую полную ситуацию,в какой я оказался.. и так, у меня файл ajax.js, который я подключаю методом drupal_add_js('source/ajax.js');, там описаны ajax функции, которые я исполбзую.
далее есть файл ajaxHandler.php, где описаны тоже команды PHP, которые выполняются в зависимости от страницы, на которой происходит выполняемый код.
И в конце концов есть класс, который тоже написанный мной... и такс...Вот кусочки из каждого файла
ajax.js
$.ajax({
type: "POST",
url: "ajaxhandler.php",
data: "act="+act + "&" + q,
success: function(msg){
$(id).html(msg);
},
cache: false
});
}
Далее ajaxHandler.php
case 'add_newprop':
{
define('DRUPAL_ROOT', '');
chdir(DRUPAL_ROOT);
require_once (DRUPAL_ROOT . '/includes/bootstrap.inc');
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$UCreate -> AddNewProperty($_POST['name_property'], $_POST['value_property']);
break;
}
Ну class.kl.php в котором и размещается форма и вызываемый метод AddNewProperty()
echo "<input type = 'submit' name = 'addnewproperty', value = 'Добавить свойство', class = 'mybuttons' onclick = \"bAjax('#addprop', $('#faddprop').serialize(), 'add_newprop');return false;\">";
echo "Название: <input type = text name = 'name_property'>";
echo "Свойство: <input type = text name = 'value_property'>";
echo "<div id = 'addprop'></div>";
echo "</form>";
...
public function AddNewProperty($p1, $p2)
{
$sql = "INSERT INTO aa_property VALUES ('','','','')";
db_query($sql);
}
По сабмиту у меня должен выполнятся sql код через ajax -=)))... данные все приходят и отдаются нормально.... но есть ошибка с етим db_query блин(
З.Ы, В define('DRUPAL_ROOT', ''); вторым параметром я пробовал передавать начиная с 'd:\www\umagazine.art', где есть сам друпал етот и заканчивая пустыми скобками ''.. Результата ноль.
<?php
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
define('DRUPAL_ROOT', getcwd());
chdir(DRUPAL_ROOT);
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
?>
Да, получилось, спасибо оргромное.