Перейти к публикации

Модуль форма заказа как правильно подключить в 9,8


Рекомендованные сообщения

Добрый всем день.

Поделились со мной модулем формы заказа на 9,4 вроде бы работает нормально но у меня уже 9,8

вроде тоже работает но письма не отправляет ,

Я в этих делах новенький помогите пожалуйста правильно подключить в 9,8 т.к. в новой версии есть не все строки которые нужно найти

Инструкция по установке

ФАЙЛ form.tpl Закидываем в папку templates/ВАШ СКИН/

Папки engine,img,language - Закидываем в корень вашего сайта!

Дальше Открываем файл admin.php

Ищем там строчку

'googlemap' => 'admin',

И после нее вставляем следущую строчку

'form' => 'admin',

Дальше идём в папку engine/inc/

Открываем файл options.php

array('name' => $lang['opt_sfind'],

'url' => "$PHP_SELF?mod=search",

'descr' => $lang['opt_sfindc'],

'image' => "find_base.png",

'access' => "1",

),

после нее вставляем следущий Код

array('name'=> "Создать форму",

'url' => "$PHP_SELF?mod=form",

'descr' => "Генерирует форму обратной связи",

'image' => "form_add.png",

'access' => "1",

),

engine/ajax Открываем файл antivirus.php

Ищем там строку "./autobackup.php",

И после нее вставляем следущие

"./engine/modules/form.php",

"./engine/inc/form.php"

Дальше engine/engine.php

Ищем там строку

case "pm":

include ENGINE_DIR.'/modules/pm.php';

break;

и после нее вставляем

case "form":

include ENGINE_DIR.'/modules/form.php';

break;

ДАЛЕЕ УСТАНОВКА Через PHPMYADMIN производим установку БД Файл SQL.sql, как? НУ найдите уж PHPMYADMIN в панели хостера, и там уже жмете: SQL и вводим в поле наш запрос из файла.

Сам модуль пока можно здесь качать

http://games.halyvat...7_dle-forms.rar

Ну или посоветуйте форму заказа рабочую для 9.8 я уже штук 10 перепробовал ни одна не работает все для старых версий движка

Ссылка на сообщение
Поделиться на других сайтах

Поставил SMTP ,

Теперь письма отправляет,но после отправки на сайт не возвращается показывает

504 Gateway Time-out

Кто расскажет как это исправить?

Хороший конструктор для обычных (не онлайн) магазинов самый оно. Помогите пожалуйста ну очень надо.

Ссылка на сообщение
Поделиться на других сайтах

Вот код подскажите чё дописать чтоб ошибки не было


<?php function dump($var, $stop = 1)

{

  echo '<pre>';

  print_r($var);

  echo '</pre>';

  if ($stop == 1)

   exit;

}

//error_reporting(E_ALL);

//ini_set('display_errors', 'On');


//==================================================

######### Конфигурациия Скрипта ##########

$db_project="form_project";   // Имя Таблицы для Проектов.

$db_items="form_items";   // Название Таблицы для компонетов Проекта.

##########################################

//==========Дальше Лудше ничего не трогать===========//

if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); }

$fid = array();

if(!$_GET['id']) { echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL={$config['http_home_url']}'>"; exit; }

   if(!@include_once ROOT_DIR.'/language/'.$config['langs'].'/form/user.lng') { echo "<center><h3>Error, loadings of a language package</h3></center>"; }

$row2=$db->super_query("SELECT * FROM `$db_project` WHERE id={$_GET['id']}"); $file_st="ok";

if ($is_logged)

{ $group=$member_id['user_group']; $name=$member_id['name']; $emailo=$member_id['email']; if($group==1) { $gr="yes"; } } else { $group=0; }

if($group==$row2['gr'] || $row2['gr']==0 || $gr=="yes") {

$code.="<center><h1>{$row2['title']}</h1></center>";

$res=$db->query("SELECT * FROM `$db_items` WHERE id_project='{$_GET['id']}' ORDER BY pos"); $row=$db->get_row($res);

$code.="<form action='' enctype='multipart/form-data' method='post'>";

if($row['id']) {

if($row2['title_ok']==1) { $fs="<font color='red' size=2>*</font> <b>{$form_lang['USER_TEXT_1']}</b><br>"; $typ="text"; } else { $typ="hidden"; } $pole.="$fs<input type='$typ' name='subject' value='{$row2['title_def']}' style='width:300px;'>";

if($row2['from_ok']==1) { $pole.="<br><br><font color='red' size=2>*</font> <b>{$form_lang['USER_TEXT_2']}</b><br><input type='text' name='email' value='$emailo' style='width:300px;'>"; }

do

{

$id=$row['id']; $objz="";

$name="pole_".$id;

if($row['objaz']==1) { $objz="<font color='red' size=2>*</font>"; }

if($row['type']=="text") { $pole.="<br><br>$objz <b>{$row['title']}</b><br><input type='{$row['type']}' maxlength='{$row['max']}' name='$name' style='width:300px;' value='{$row['value']}'>"; }

elseif($row['type']=="radio" or $row['type']=="checkbox" or $row['type']=="select") { $id=$row['id']; $pole.="<br><br>$objz <b>{$row['title']}</b><br>".radio($id); }

elseif($row['type']=="file") { $pole.="<br><br>$objz <b>{$row['title']}</b><br><input type='{$row['type']}' name='file-id-{$id}' style='width:300px;'><input type='hidden' name='size' value='{$row['max']}'>"; }

else {

if($row['max']!="") { $val=explode(",",$row['max']); } else { $val[0]=50; $val[1]=5; }

$pole.="<br><br>$objz <b>{$row['title']}</b><br><textarea cols='{$val[0]}' rows='{$val[1]}'  name='$name'>{$row['value']}</textarea>"; }

}

while($row=$db->get_row($res));

   $code.="<p>$pole</p>";

$res=$db->query("SELECT `id` FROM `$db_items` WHERE id_project='{$_GET['id']}' AND `type`=\"file\" ORDER BY pos");

$i = 0;

while($r=$db->get_row($res))

{

$fid[] = $r['id'];

}

//dump($fid);

//=======Прикрепление файла======//


if(!empty($fid))

{

for($i = 0; $i < sizeof($fid); $i++)

{

  $key = 'file-id-' . $fid[$i];

  //dump($key);

  if(is_uploaded_file($_FILES[$key]['tmp_name']))

  {

   $uploaddir=ROOT_DIR."/img/";

   $file_name=$_FILES[$key]["name"];

   $uploadfile=$uploaddir.$file_name;

   $size=$_POST['size']*1024;

   if($_FILES[$key]['size'] > $size)

   {

	$file_st="error"; msgbox($form_lang['USER_TEXT_3'],"<center><font color='red' size=2>{$form_lang['USER_TEXT_4']} {$_POST['size']} Kb.</font></center>");

   }

   else

   {

	if(move_uploaded_file($_FILES[$key]['tmp_name'], $uploadfile))

	{

	 echo $uploadfile;

	 $file[$i]=$uploadfile;

	}

   }

  }

}

}

//=============================//

if($_POST['email']) { $from_email=$_POST['email']; } else { $from_email=$config['admin_mail']; }

if($row2['code']==1) {

$code.=<<<HTML

<script language='JavaScript' type="text/javascript">

function reload () {

var rndval = new Date().getTime();

document.getElementById('dle-captcha').innerHTML = '<a onclick="reload(); return false;" href="#">{$lang['reload_code']}</a><br><img src="{$path['path']}engine/modules/antibot.php?rndval=' + rndval + '" border="0" width="120" height="50">';

};

</script>

HTML;

$code.="<p><font color='red' size=2>*</font> <b>{$form_lang['USER_TEXT_5']}</b><br>

<span id='dle-captcha'><a onclick='reload(); return false;' href='#'>{$lang['reload_code']}</a><br><img src='{$path['path']}engine/modules/antibot.php' alt='{$lang['sec_image']}' border='0'></span>

<br><input type='text'  name='passe' style='width:113px;'></p>";

}

$code.="<p><input type='submit' name='ok' value='{$form_lang['USER_TEXT_6']}'></form></p>";

$code.="{$form_lang['USER_TEXT_7']} <font color='red' size=2>*</font> {$form_lang['USER_TEXT_8']}";

}

#####

if($row2['code']==1) {

if($_POST['passe']==$_SESSION['sec_code_session']) { $stop_code="ok"; } else { $stop_code="err"; }

} else { $stop_code="ok"; }

if($_POST['ok']) {

// инициализация переменной, сообщающей об ошибке.

$obz = '';

$res=$db->query("SELECT * FROM `$db_items` WHERE id_project='{$_GET['id']}'"); $row=$db->get_row($res);

do

{

  if($row['objaz']==1)

  {

   $name="pole_".$row['id'];


   // Если поле обязательное, то проверяем его на корректность //

   switch( $row['type'] )

   {

	case 'text':

	case 'textarea':

	{

	 if($_POST[$name]=="")

	 {

	  //print 'te';

	  $obz="<center><font color='red' size=2>{$form_lang['USER_TEXT_9']}</font>";

	 }

	 break;

	}

	case 'radio':

	{

	 if (!(isset($_POST[ $name ]) && $_POST[ $name ] !== ''))

	 {

	  //print 'ra: '.$_POST[$name];

	  $obz="<center><font color='red' size=2>{$form_lang['USER_TEXT_9']}</font>";

	 }

	 break;

	}

	case 'checkbox':

	{

	 $values = explode(',', $row['value']);

	 $count_sel = 0;

	 for($i=0; $i<count($values); $i++) {

	  if (isset($_POST[$name.'_'.$i])) {

	   $count_sel++;

	  }

	 }

	 if ($count_sel == 0) {

	  $obz="<center><font color='red' size=2>{$form_lang['USER_TEXT_9']}</font>";

	 }


	 /*

	 if (!isset($_POST[$name]))

	 {

	  //print 'chk: '.$_POST[$name];

	  $obz="<center><font color='red' size=2>{$form_lang['USER_TEXT_9']}</font>";

	 }

	 */

	 break;

	}

	case 'select':

	{

	 /*if (!isset($_POST[$name]) ||

	   empty($_POST[$name]) ||

	   (is_array($_POST[$name]) && count($_POST[$name])==0) ||

	   (!is_array($_POST[$name]) && ($_POST[$name] == '-1'))) */

	 if (@$_POST[ $name ] === '')

	 {

	  //print 'sel';

	  $obz="<center><font color='red' size=2>{$form_lang['USER_TEXT_9']}</font>";

	 }

	 break;

	}

   }


   //$name="pole_".$row['id'];

   //if($_POST[$name]=="") { $obz="<center><font color='red' size=2>{$form_lang['USER_TEXT_9']}</font>"; }

  }

} while($row=$db->get_row($res));

if($file_st!="error") {

if(!$obz) {

if ($stop_code=="ok") {

$subject=$_POST['subject'];

$msg=msg();

$row2=$db->super_query("SELECT * FROM `$db_project` WHERE id={$_GET['id']}");

if($row2['email']!="") {

print 'before send';

XMail($from_email, $row2['email'], $subject, $msg);

} else {

$val=explode(",",$row2['email2']); foreach($val as $v) { XMail($from_email, $v, $subject, $msg);}

}

} else { msgbox($form_lang['USER_TEXT_3'],"<center><font color='red' size=2>{$form_lang['USER_TEXT_10']}</font></center>"); }

} else { msgbox($form_lang['USER_TEXT_3'],$obz."<br>{$form_lang['USER_TEXT_7']} <font color='red' size=2>*</font> {$form_lang['USER_TEXT_8']}</center>"); }

	 }

}


} else { $code.="<center><h1>{$row2['text_not_prav']}</h1></center>"; }

//-------Функции-------//

### Функция Отправки на email

function XMail($from, $to, $subject, $msg) {

global $form_lang,$config,$file;

/*

print 'from: '.$from."\n";

print 'to: '.$to."\n";

print 'subject: '.$subject."\n";

print 'msg: '.$msg."\n";

print 'file: '.$file."\n";

*/

if(isset($file))

{

$un		= strtoupper(uniqid(time()));

$head	  = "From: $from\n";

$head	 .= "To: $to\n";

$head	 .= "Subject: $subject\n";

$head	 .= "X-Mailer: PHPMail Tool\n";

$head	 .= "Reply-To: $from\n";

$head	 .= "Mime-Version: 1.0\n";

$head	 .= "Content-Type:multipart/mixed;";

$head	 .= "boundary=\"----------".$un."\"\n";

$zag = "";

$zag	  .= "------------".$un."\nContent-Type:text/html; charset=\"windows-1251\"\n";

$zag	  .= "Content-Transfer-Encoding: 8bit\n\n$msg\n";

$zag	  .= "------------".$un."\n";

for($i = 0; $i < sizeof($file); $i++)

{

  $f		 = @fopen($file[$i],"rb");

  $zag	  .= "Content-Type: application/octet-stream;";

  $zag	  .= "name=\"".basename($file[$i])."\"\n";

  $zag	  .= "Content-Transfer-Encoding:base64\n";

  $zag	  .= "Content-Disposition:attachment;";

  $zag	  .= "filename=\"".basename($file[$i])."\"\n";

  $zag	  .= chunk_split(base64_encode(fread($f,filesize($file[$i]))))."\n";

}

}

else

{

	$un		= strtoupper(uniqid(time()));

	$head	  = "From: $from\n";

	$head	 .= "To: $to\n";

	$head	 .= "Subject: $subject\n";

	$head	 .= "X-Mailer: PHPMail Tool\n";

	$head	 .= "Reply-To: $from\n";

	$head	 .= "Mime-Version: 1.0\n";


/*

	$head	 .= "Content-Type:multipart/mixed;";

	$head	 .= "boundary=\"----------".$un."\"\n";

	$zag	   = "------------".$un."\nContent-Type:text/html; charset=\"windows-1251\"\n";

	$zag	  .= "Content-Transfer-Encoding: 8bit\n$msg\n";

	$zag	  .= "------------".$un."\n";

*/


$head .= "Content-Type: text/html; charset=windows-1251\n";

//$head .= "Content-Length: ".strlen($msg)."\n";


$zag = $msg;

}

//print 'before mail send'."\n";

$result=mail("$to", $subject, $zag, $head);

//print 'mail send, result: '.$result."\n";

if ($result!=TRUE) { msgbox($form_lang['USER_TEXT_13']," {$form_lang['USER_TEXT_11']} <a href='{$config['http_home_url']}'>{$form_lang['USER_TEXT_12']}</a>");

   } else  { msgbox($form_lang['USER_TEXT_13']," {$form_lang['USER_TEXT_14']} <a href='{$config['http_home_url']}'>{$form_lang['USER_TEXT_12']}</a>"); }

if($file) { unlink($file); }

}

### Функция Сборки текста сообщения

function msg()

{

global $db_items,$db_project,$db,$form_lang;


$date=date("d/m/Y - H:i:s");


$proj_id = intval(@$_GET['id']);


$res=$db->query("SELECT * FROM `$db_items` WHERE id_project='{$proj_id}'");

$row=$db->get_row($res);

do

{

  $id=$row['id'];

  $name="pole_".$id;

  unset($tex);


  if($row['type']=="radio" or $row['type']=="select")

  {

   $n=$_POST[$name];

   $array = $row['value'];

   $val = explode(",",$array);

   $tex="{$val[$n]}";

  }


  if($row['type']=="checkbox")

  {

   $array = $row['value'];

   $val=explode(",",$array);

   foreach($val as $k=>$v)

   {

	$name2="pole_".$id."_".$k;

	//$name2 = 'pole_'.$id;

	if ( isset($_POST[$name2]) )

	{

	 $tex.="{$val[$k]}<br>";

	}

   }

  }


  if($row['type']=="text" || $row['type'] == 'textarea')

  {

   $tex=$_POST[$name];

  }

  $msg.="<dl><dt><font size=4>{$row['title']}</font></dt>";

  $msg.="<dd><font size=3>{$tex}</font></dd></dl>";

} while( $row = $db->get_row($res) );


$msg.="<br><b>{$form_lang['USER_TEXT_15']}</b> $date";

return $msg;

}


### Функция Сборка полей типа: (radio,checkbox,select)

function radio($id)

{

global $db_items,$db;

$val=array();

$ro=$db->super_query("SELECT * FROM `$db_items` WHERE id='$id'"); $array=$ro['value'];

$val=explode(",",$array);

$pol="";

foreach($val as $n=>$v)

{

$name="pole_".$ro['id'];  $name2="pole_".$ro['id']."_".$n;

if($ro['type']=="checkbox") { $pol.="<input name='$name2' value=$n type='{$ro['type']}'>{$val[$n]}&nbsp;"; }

elseif($ro['type']=="radio") { $pol.="<input name='$name' value=$n type='{$ro['type']}'>{$val[$n]}&nbsp;"; }

elseif($ro['type']=="select") { $sel1="<select name='$name'><option value=''></option>"; $pol.="<option value=$n>{$val[$n]}</option>"; $sel2="</select>"; }

}

return $sel1.$pol.$sel2;

}

//-------Подгружаем шаблон-------//

	 $tpl->load_template('form.tpl');

	 $tpl->set('{code}', $code);

	 $tpl->compile('content');

	 $tpl->clear();

?>

Ссылка на сообщение
Поделиться на других сайтах

Всё модуль рабочий.504 ошибка сервера а не модуля.

Выглядит он такЖ

Админа

2a47258fff46a2e08fd7923c8f73331b.jpeg

Общая настройка

790aff4ea0cc528ec35ee766a1de98bf.jpeg

Создание полей

3ce3ca683407b47a0dbfa6c149579ded.jpeg

Вид в админе

9e9e764806e9d0699d7795bef4a31c4a.jpeg

Примерно так на сайте (создал для примера,полей можно создать сколько угодно,любых кнопка, выпадающих,текст)

780b27ab540560bcbdf73cdd0115c5f0.jpeg

Ссылка на сообщение
Поделиться на других сайтах

ага, мерси... я пошел несколько иным путем просто, у меня независимая от движка конструкция, но легко вшивается в любой

http://forum.dle-news.ru/index.php?showtopic=45052

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...