Как добавить новое поле обратной связи в DLE 8.3

12
S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#11

Спасибо VikJob - за помощь ничего не взял, но решения найти не получилось.

Кто нибудь ещё может помочь с добавлением полей в обратную связь DLE 8.3?

IL
На сайте с 09.12.2009
Offline
124
#12

Вам какие поля нужны, Вы обрисуйте задачу!

S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#13
IoanL:
Вам какие поля нужны, Вы обрисуйте задачу!

Нужно добавить дополнительные поля в DLE 8.3, например нужно добавить дополнительное поле для заполнения "Фамилия"

Вот файл шаблона feedback.tpl

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="20" align="left" valign="top"><img src="{THEME}/images/dlet_abl01.gif" width="20" height="30" alt="" /></td>

<td align="left" valign="top" class="abl02"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="abl121">

<tr>

<td width="40" height="30"><img src="{THEME}/images/spacer.gif" width="40" height="1" alt="" /></td>

<td align="left" class="ntitle">Обратная связь</td>

</tr>

</table></td>

<td width="20" align="right" valign="top"><img src="{THEME}/images/dlet_abl13.gif" width="20" height="30" alt="" /></td>

</tr>

<tr>

<td width="20" align="left" valign="top"><img src="{THEME}/images/dlet_abl51.gif" width="20" height="30" alt="" /></td>

<td align="left" valign="top" class="abl22"><table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td height="30" class="abl221">&nbsp;</td>

</tr>

</table></td>

<td width="20" align="right" valign="top"><img src="{THEME}/images/dlet_abl53.gif" width="20" height="30" alt="" /></td>

</tr>

<tr>

<td width="20" align="left" valign="top" class="abl31"><img src="{THEME}/images/spacer.gif" width="20" height="1" alt="" /></td>

<td align="left" valign="top" class="stext">

<table width="98%" border="0" cellpadding="0" cellspacing="0">

[not-logged]

<tr>

<td width="130" height="25">Ваше имя:</td>

<td><input type="text" maxlength="35" name="name" class="f_input" /></td>

</tr>

<tr>

<td width="130" height="25">E-Mail:</td>

<td><input type="text" maxlength="35" name="email" class="f_input" /></td>

</tr>

[/not-logged]

<tr>

<td width="130" height="25">Заголовок:</td>

<td><input type="text" maxlength="45" name="subject" class="f_input" /></td>

</tr>

<tr>

<td width="130" height="25">Получатель:</td>

<td>{recipient}</td>

</tr>

<tr>

<td width="130">Сообщение:</td>

<td><textarea name="message" style="width:420px; height:160px" rows="" cols="" class="f_textarea"></textarea></td>

</tr>

<tr>

<td width="130" height="25">Код безопасности:</td>

<td><br />{code}</td>

</tr>

<tr>

<td width="130" height="25">Введите код:</td>

<td><input type="text" maxlength="45" name="sec_code" style="width:115px" class="f_input" /></td>

</tr>

<tr>

<td width="130" height="25">&nbsp;</td>

<td><input name="send_btn" type="image" style="width:80px; height:20px; cursor:hand" src="{THEME}/images/dlet_bttn_submit.gif" alt="Отправить" /></td>

</tr>

</table>

</td>

<td width="20" align="right" valign="top" class="abl33"><img src="{THEME}/images/spacer.gif" width="20" height="1" alt="" /></td>

</tr>

<tr>

<td width="20" align="left" valign="top"><img src="{THEME}/images/dlet_abl31.gif" width="20" height="5" alt="" /></td>

<td><img src="{THEME}/images/spacer.gif" width="1" height="5" alt="" /></td>

<td width="20" align="right" valign="top"><img src="{THEME}/images/dlet_abl33.gif" width="20" height="5" alt="" /></td>

</tr>

<tr>

<td width="20" align="left" valign="top"><img src="{THEME}/images/dlet_abl41.gif" width="20" height="40" alt="" /></td>

<td class="abl42">&nbsp;</td>

<td width="20" align="right" valign="top"><img src="{THEME}/images/dlet_abl43.gif" width="20" height="40" alt="" /></td>

</tr>

</table>

S_A_N_T_A
На сайте с 23.11.2009
Offline
154
#14

Вот файл feedback.php

<?php

if( ! defined( 'DATALIFEENGINE' ) ) {

die( "Hacking attempt!" );

}

if( isset( $_POST['send'] ) ) {

$stop = "";

if( $is_logged ) {

$name = $member_id['name'];

$email = $member_id['email'];

} else {

$name = $db->safesql( strip_tags( $_POST['name'] ) );

$email = $db->safesql( strip_tags( $_POST['email'] ) );

$db->query( "SELECT name from " . USERPREFIX . "_users where LOWER(name) = '" . strtolower( $name ) . "' OR LOWER(email) = '" . strtolower( $email ) . "'" );

if( $db->num_rows() > 0 ) {

$stop = $lang['news_err_7'];

}

$name = strip_tags( stripslashes( $_POST['name'] ) );

$email = strip_tags( stripslashes( $_POST['email'] ) );

}

$subject = strip_tags( stripslashes( $_POST['subject'] ) );

$message = stripslashes( $_POST['message'] );

$recip = intval( $_POST['recip'] );

function check_email($value) {

return preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])'.'(([a-z0-9-])*([a-z0-9]))+' . '(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i', $value );

}

if( !$user_group[$member_id['user_group']]['allow_feed'] ) {

$recipient = $db->super_query( "SELECT name, email, fullname FROM " . USERPREFIX . "_users WHERE user_id='" . $recip . "' AND user_group = '1'" );

} else {

$recipient = $db->super_query( "SELECT name, email, fullname FROM " . USERPREFIX . "_users WHERE user_id='" . $recip . "' AND allow_mail = '1'" );

}

if( empty( $recipient['fullname'] ) ) $recipient['fullname'] = $recipient['name'];

if (!$recipient['name']) $stop .= $lang['feed_err_8'];

if( empty( $name ) ) {

$stop .= $lang['feed_err_1'];

}

if( empty( $email ) ) {

$stop .= $lang['feed_err_2'];

} elseif( ! check_email( $email ) ) {

$stop .= $lang['feed_err_3'];

}

if( empty( $subject ) ) {

$stop .= $lang['feed_err_4'];

}

if( empty( $message ) ) {

$stop .= $lang['feed_err_5'];

}

if( $_POST['sec_code'] != $_SESSION['sec_code_session'] OR ! $_SESSION['sec_code_session'] ) {

$stop .= $lang['reg_err_19'];

}

$_SESSION['sec_code_session'] = false;

if( $stop ) {

msgbox( $lang['all_err_1'], "$stop<br /><br /><a href=\"javascript:history.go(-1)\">$lang[all_prev]</a>" );

} else {

include_once ENGINE_DIR . '/classes/mail.class.php';

$mail = new dle_mail( $config );

$row = $db->super_query( "SELECT template FROM " . PREFIX . "_email where name='feed_mail' LIMIT 0,1" );

$row['template'] = stripslashes( $row['template'] );

$row['template'] = str_replace( "{%username_to%}", $recipient['fullname'], $row['template'] );

$row['template'] = str_replace( "{%username_from%}", $name, $row['template'] );

$row['template'] = str_replace( "{%text%}", $message, $row['template'] );

$row['template'] = str_replace( "{%ip%}", $_SERVER['REMOTE_ADDR'], $row['template'] );

$mail->from = $email;

$mail->send( $recipient['email'], $subject, $row['template'] );

if( $mail->send_error ) msgbox( $lang['all_info'], $mail->smtp_msg );

else msgbox( $lang['feed_ok_1'], "$lang[feed_ok_2] " . $recipient['name'] . " $lang[feed_ok_3] <a href=\"{$config['http_home_url']}\">$lang[feed_ok_4]</a>" );

}

} else {

if( ! $user_group[$member_id['user_group']]['allow_feed'] ) {

$group = 2;

$user = false;

if ($_GET['user']) {

$lang['feed_error'] = str_replace( '{group}', $user_group[$member_id['user_group']]['group_name'], $lang['feed_error'] );

msgbox( $lang['all_info'], $lang['feed_error'] );

}

} else {

$user = intval( $_GET['user'] );

$group = 3;

}

if( ! $user ) $db->query( "SELECT name, user_group, user_id FROM " . USERPREFIX . "_users WHERE user_group < '$group' AND allow_mail = '1' ORDER BY user_group" );

else $db->query( "SELECT name, user_group, user_id FROM " . USERPREFIX . "_users WHERE user_id = '$user' AND allow_mail = '1'" );

if( $db->num_rows() ) {

$empf = "<select name=\"recip\">";

$i = 1;

while ( $row = $db->get_array() ) {

$str = $row['name'] . " (" . stripslashes( $user_group[$row['user_group']]['group_name'] ) . ")";

if( $i == 1 ) {

$empf .= "<option selected=\"selected\" value=\"" . $row["user_id"] . "\">" . $str . "</option>\n";

} else {

$empf .= "<option value=\"" . $row["user_id"] . "\">" . $str . "</option>\n";

}

$i ++;

}

$empf .= "</select>";

$db->free();

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

$path = parse_url( $config['http_home_url'] );

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

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

if( ! $is_logged ) {

$tpl->set( '[not-logged]', "" );

$tpl->set( '[/not-logged]', "" );

} else

$tpl->set_block( "'\\[not-logged\\](.*?)\\[/not-logged\\]'si", "" );

$tpl->copy_template = "<form method=\"post\" name=\"sendmail\" onsubmit=\"if(document.sendmail.subject.value == '' || document.sendmail.message.value == ''){alert('{$lang['comm_req_f']}');return false}\" action=\"\">\n" . $tpl->copy_template . "

<input name=\"send\" type=\"hidden\" value=\"send\" />

</form>";

$tpl->copy_template .= <<<HTML

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

<!--

function reload () {

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

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

};

//-->

</script>

HTML;

$tpl->compile( 'content' );

$tpl->clear();

} else {

msgbox( $lang['all_err_1'], $lang['feed_err_7'] );

}

}

?>

S_A_N_T_A добавил 22.02.2010 в 15:23

Тема актуальна...

N
На сайте с 13.05.2009
Offline
13
#15

Кто нашел решение для версий ниже 8.0, к примеру для 7.5, какие файлы отвечают за это, нужно ли редактировать/добавлять что-то в базу данных для добавления своего поля, либо достаточно сделать как в последнем примере?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий