Помогите с адаптацией скрипта под D7

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

Аватар пользователя real_stranger real_stranger 3 сентября 2012 в 0:59

Всем привет! Есть скрипт, который выводить форму обратной связи. Скрипт лежит в отдельном 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).

Помогите поправить?

Заранее, спасибо!

Комментарии

Аватар пользователя graker graker 3 сентября 2012 в 2:20

Очевидно в $_GET не лежит ['nid'], а модификация значения переменной $mainout невозможна, т.к. переменная еще не инициализирована. Две следующие ошибки - результаты первой ошибки. Последнюю ошибку даже комментировать не буду, т.к. нечего корячить формы на HTML, если уже поставили Дру.

Аватар пользователя real_stranger real_stranger 3 сентября 2012 в 10:13

graker wrote:
Очевидно в $_GET не лежит ['nid'], а модификация значения переменной $mainout невозможна, т.к. переменная еще не инициализирована. Две следующие ошибки - результаты первой ошибки. Последнюю ошибку даже комментировать не буду, т.к. нечего корячить формы на HTML, если уже поставили Дру.

Про формы понял, с php почти не дружу, использовал метод со старога сайта, который не я делал. А как в $_GET добавить ['nid']?

Аватар пользователя real_stranger real_stranger 3 сентября 2012 в 11:08

parshin.pn wrote:
http://mysite.ru/form.php?nid=value
Проверьте правильность Вашей ссылки, правильно ли передаете значение переменной nid

Вот оно!! Спасибо большое. У меня во вьюхе вообще значение nid не подставлялось)

п.с. Пошёл переделывать на Drupal Form.

Аватар пользователя Orion76 Orion76 3 сентября 2012 в 11:27

"real_stranger" wrote:
с php почти не дружу

Приходилось работать с сайтами, которые делали спецы по php, но никогда не работавшие с Drupal..
В плане реализации, такое Г.. я вам скажу..
Хотя вашу задачу можно решить на друпал стандартно, без строчки кода..
Форма - это как минимум специальный тип материала с нужными полями или модуль Webform..
Если нужно что-то делать при сохранении формы(показать сообщение, отправить письмо и т.д.) - модуль Rules..

Вопросы по задаче, подобной вашей, на этом форуме появляются 2-3 раза в неделю..
Поищите, и скорее всего, найдете готовое описание решения..

Аватар пользователя real_stranger real_stranger 3 сентября 2012 в 11:57

Да по факту задача тривиальная..

Есть каталог на вьюхе уберкартовый, и вот при клике на подробнее должно всплывать лайтбоксовое окно с набором cck полей. Картинка, заголовок, цена итп. Вроде ничего особенного, но вот как без кода это сделать, понять не могу.

Аватар пользователя real_stranger real_stranger 3 сентября 2012 в 16:35

Переписал почти полностью!

Затыки остаются с полями Описания, то бишь body и картинкой уберкартой, хоть убейте не понимаю как их вывести. Произвольные поля, цена, тайтл выводятся. А вот body и uc_product_image никак.

Можете подсказать?

Аватар пользователя real_stranger real_stranger 3 сентября 2012 в 23:38

orion76 wrote:
так-то "смерть велосипедам" - это второе имя Drupal-)

Ха, велосипеды, будут жить вечно, как туда nid передать?)) Открывается первый же результат ключевой вьюхи..

П.С. Короче, полностью! разобрался)Если интересно расскажу) Прикольный получается каталог.