header

Главные вкладки

Аватар пользователя Zorak Zorak 14 мая 2013 в 14:39

Здраствуйте форумчани. Появился такой вопрос. Как мне в хидер (у файле, который созлданный мной) подключить что нибудь друпаловское для работы с базой. Я знаю что подключается с помощью druapl_add(), но что подключать не знаю.
Причина вопроса: при выполнении кода из файла появляется сообщение Undefined function: db_query.
Т.е. Суть вопроса такова: ЧТО работает с базой в друпале и как сего щастье подключить в написанный мной файл ?
Спасибо.

Комментарии

Аватар пользователя voviko voviko 14 мая 2013 в 15:01

Какбэ так...

<?php
        define
('DRUPAL_ROOT''/var/www/drupal');   //абсолютный путь
        
chdir(DRUPAL_ROOT);
        require_once 
DRUPAL_ROOT '/includes/bootstrap.inc';
        
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
?>

А вдруг забудите при переносе? Я вот как раз мучаюсь.

Аватар пользователя Zorak Zorak 15 мая 2013 в 16:46

либо не такой методл, в чем по сути сомневаюсь, либо не тот файл, на что я думаю больше.. все еще не распознает функции db_query()

И так.... вот код куда я вствлял

define('DRUPAL_ROOT', 'D:/www/umagazine.art');   //абсолютный путь
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

Аватар пользователя Zorak Zorak 15 мая 2013 в 17:09

Такс, ладно, я обрисую полную ситуацию,в какой я оказался.. и так, у меня файл ajax.js, который я подключаю методом drupal_add_js('source/ajax.js');, там описаны ajax функции, которые я исполбзую.
далее есть файл ajaxHandler.php, где описаны тоже команды PHP, которые выполняются в зависимости от страницы, на которой происходит выполняемый код.
И в конце концов есть класс, который тоже написанный мной... и такс...Вот кусочки из каждого файла

ajax.js

function bAjax(id, q, act){
$.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 "<form action = 'addtovar' method = 'POST' id = 'faddprop'>";
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', где есть сам друпал етот и заканчивая пустыми скобками ''.. Результата ноль.

Аватар пользователя voviko voviko 15 мая 2013 в 22:20
<?php
        define
('DRUPAL_ROOT'getcwd());
        
chdir(DRUPAL_ROOT);
        require_once 
DRUPAL_ROOT '/includes/bootstrap.inc';

        

drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
?>