Всем привет! Есть скрипт, который выводить форму обратной связи. Скрипт лежит в отдельном php, который вызывается лайтбоксовым фреймом.
Вот сам скрипт:
<?php
define('DRUPAL_ROOT', "/home/users2/c/mysite/domains/mysite.ru");
include_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
error_reporting (E_ALL);
$ndd=node_load($_GET['nid']);
$mainout.="<div style='padding: 30px'>";
$mainout.="<head>";
$mainout.="<title>Задать вопрос</title>";
$mainout.="<link type='text/css' rel='stylesheet' media='all' href='/sites/all/themes/zen/zen-internals/css/popform.css' />";
$mainout.="</head>";
$mainout.="<body>";
$mainout.="<div class='popcontent'>";
$mainout.=" <form method='post' style='text-align: left;'>";
$mainout.="<div class='popname'>Тема<span style='color: #ff0000;'>*</span></div>";
$mainout.="<div class='popvalue'><input type='text' name='fio' value='\"".node_get_types('name', $ndd)." ".$ndd->title."\"' readonly size='60' maxlength='128'></div><br>";
$mainout.="<div class='popname'>E-mail<span style='color: #ff0000;'>*</span></div>";
$mainout.="<div class='popvalue'><input type='text' name='mail' value='' size='60' maxlength='128'></div><br>";
$mainout.="<div class='popname'>Телефон<span style='color: #ff0000;'>*</span></div>";
$mainout.="<div class='popvalue'><input type='text' name='tel' value='' size='60' maxlength='128'></div><br>";
$mainout.="<div class='popname'>Организация</div>";
$mainout.="<div class='popvalue'><input type='text' name='org' value='' size='60' maxlength='128'></div><br>";
$mainout.="<div class='popname'>Сообщение<span style='color: #ff0000;'>*</span></div>";
$mainout.="<textarea name='mes' class='inpnomers' placeholder='Введите сообщение!' name='message' cols='60' rows='5' class='form-textarea required error'></textarea> <br><br>";
$mainout.="<input type='submit' value='Отправить' name='zakz' class='done_button'>";
$mainout.="</form>";
$mainout.="<div class='poptitle'>\"".node_get_types('name', $ndd)." ".$ndd->title."\"</div>";
$mainout.="</body>";
$mainout.="</html>";
$mainout.="</div>";
if (
$_POST['zakz'] == "Отправить") {
$zak = "Оформлен заявка на : ".node_get_types('name', $ndd)." ".$ndd->title."\n
Email: ".$_POST['mail']."\n
Телефонный номер: ".$_POST['tel']."\n
Организация: ".$_POST['org']."\n
Сообщение: ".$_POST['mes'];
mail("mysite@mail.ru", "Заявка на уточнение цены из картчоки товара", $zak);
$mainout .= "
<script>
alert('Заказ принят!');
</script>
";
}
echo $mainout;
?>
В 7 этот скрипт вызывет ошибки, если заменить .node_get_types на .node_type_get_types, то вместо полей выводятся "Array".
Вот ошибки:
Notice: Undefined variable: nid в функции main() (строка 10 в файле /home/users2/c/mysite/domains/mysite.ru/frm.php).
Notice: Undefined variable: mainout в функции main() (строка 11 в файле /home/users2/c/mysite/domains/mysite.ru/frm.php).
Notice: Trying to get property of non-object в функции main() (строка 23 в файле /home/users2/c/mysite/domains/mysite.ru/frm.php).
Notice: Trying to get property of non-object в функции main() (строка 34 в файле /home/users2/c/mysite/domains/mysite.ru/frm.php).
Notice: Undefined index: zakz в функции main() (строка 41 в файле /home/users2/c/mysite/domains/mysite.ru/frm.php).
Помогите поправить?
Заранее, спасибо!
Комментарии
Очевидно в $_GET не лежит ['nid'], а модификация значения переменной $mainout невозможна, т.к. переменная еще не инициализирована. Две следующие ошибки - результаты первой ошибки. Последнюю ошибку даже комментировать не буду, т.к. нечего корячить формы на HTML, если уже поставили Дру.
Про формы понял, с php почти не дружу, использовал метод со старога сайта, который не я делал. А как в $_GET добавить ['nid']?
http://mysite.ru/form.php?nid=value
Проверьте правильность Вашей ссылки, правильно ли передаете значение переменной nid
Вот оно!! Спасибо большое. У меня во вьюхе вообще значение nid не подставлялось)
п.с. Пошёл переделывать на Drupal Form.
Приходилось работать с сайтами, которые делали спецы по php, но никогда не работавшие с Drupal..
В плане реализации, такое Г.. я вам скажу..
Хотя вашу задачу можно решить на друпал стандартно, без строчки кода..
Форма - это как минимум специальный тип материала с нужными полями или модуль Webform..
Если нужно что-то делать при сохранении формы(показать сообщение, отправить письмо и т.д.) - модуль Rules..
Вопросы по задаче, подобной вашей, на этом форуме появляются 2-3 раза в неделю..
Поищите, и скорее всего, найдете готовое описание решения..
Да по факту задача тривиальная..
Есть каталог на вьюхе уберкартовый, и вот при клике на подробнее должно всплывать лайтбоксовое окно с набором cck полей. Картинка, заголовок, цена итп. Вроде ничего особенного, но вот как без кода это сделать, понять не могу.
Переписал почти полностью!
Затыки остаются с полями Описания, то бишь body и картинкой уберкартой, хоть убейте не понимаю как их вывести. Произвольные поля, цена, тайтл выводятся. А вот body и uc_product_image никак.
Можете подсказать?
http://www.drupal.ru/node/66836
первый пост...
ооо, отличный вариант! спасибо!
так-то "смерть велосипедам" - это второе имя Drupal-)
Ха, велосипеды, будут жить вечно, как туда nid передать?)) Открывается первый же результат ключевой вьюхи..
П.С. Короче, полностью! разобрался)Если интересно расскажу) Прикольный получается каталог.