Нестандартная форма добавления обьявлений.
Создал свою форму добавления обьявлений на доску.
Сделал отдельный шаблон, скопипастил туда форму из настроек ТДС "Доска обьявлений", добавил поле для выбора раздела добавления.
<?php
$Captcha = new Captcha();
$captcha_key = $Captcha->GetCaptchaID();
?>
<script language="javascript">
function goToStepTwo()
{
f1 = document.getElementById('step_1');
f2 = document.getElementById('step_2');
document.getElementById('user_name').innerHTML = document.getElementById('user_name_src').value;
document.getElementById('user_mail').innerHTML = document.getElementById('user_mail_src').value;
document.getElementById('user_phone').innerHTML = document.getElementById('user_phone_src').value;
document.getElementById('ad_info').innerHTML = '<p>'+document.getElementById('ad_group_src').options[document.getElementById('ad_group_src').selectedIndex].text+'<p><h6>'+document.getElementById('ad_name_src').value+'</h6>'+document.getElementById('ad_text_src').value;
document.getElementById('ad_price').innerHTML = document.getElementById('ad_price_src').value+' '+document.getElementById('ad_curr_src').options[document.getElementById('ad_curr_src').selectedIndex].text;
f1.style.display = 'none';
f2.style.display = 'block'
}
function goToStepOne()
{
f1 = document.getElementById('step_1');
f2 = document.getElementById('step_2');
f2.style.display = 'none';
f1.style.display = 'block'
}
</script>
<form method="post" action="/board/" class="f_st1">
<div id="step_1">
<h6 class="ch">Подача объявления</h6>
<div class="fh"><p>Поля обязательные для заполнения:</p></div>
<div class="form_b_st1">
<div class="f_st1_b">
<div class="st1_lit">
<div class="st1_lit_b">
<h6>Личные данные</h6>
<table>
<tbody><tr>
<td class="ft_1">Ваше имя:</td>
<td class="ft_2"><input type="text" name="advertisement_fio" class="in1" gtbfieldid="6" id='user_name_src'>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
<tr>
<td class="ft_1">Регион:</td>
<td class="ft_2"><select class="slt" name=""><option>Все</option></select>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
</tbody></table>
</div>
</div>
<div class="st1_lit">
<div class="st1_lit_b">
<h6>Личные данные</h6>
<h5>Выберети один или оба способа связи:</h5>
<table>
<tbody><tr>
<td class="ft_1">E-mail:</td>
<td class="ft_2"><input type="text" name="advertisement_email" class="in1" gtbfieldid="7" id='user_mail_src'>
<!-- span><img alt="PASS" src="/images/pass.gif"><img alt="OK" src="/images/ok.gif"></span --></td>
<td rowspan="3">
<div class="st1_inf">
<ul>
<li>На ваш адрес не будет рассылаться спам и другие нехорошие вещи.</li>
<li>На ваш телефон не будет рассылаться спам и другие нехорошие вещи.</li>
</ul>
</div>
</td>
</tr>
<tr>
<td class="ft_1">Телефон:</td>
<td class="ft_2"><input type="text" value="" size="70" name="advertisement_phone" class="in1" id="user_phone_src">
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
</tbody></table>
</div>
</div>
<div class="st1_lit">
<div class="st1_lit_b">
<h6>Характеристики объявления</h6>
<table>
<tbody><tr>
<td class="ft_1"></td>
<td class="ft_2"><label class="lb_l">Купля<input type="radio" name=""></label>
<label>Продажа <input type="radio" name=""></label></td>
</tr>
<tr>
<td class="ft_1">Категория:</td>
<td class="ft_2">
<select class="slt" name="group_id" id='ad_group_src'>
<?php
$shop = new shop();
$ShopId = 2;
$rez = array();
$rez = $shop->GetItemPath($ShopId);
$external_propertys = array();
$external_propertys['ТекущаяГруппа'] = $rez['group'];
$param = array('current_group_id' => 0, 'items_on_page' => 10);
$param['xml_show_group_type'] = 'all';
$xsl_catalog = 'выборКатегорииДобавления';
$shop->ShowShop($ShopId, $xsl_catalog, $param, $external_propertys);
?>
</select>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
<tr>
<td class="ft_1">Заголовок объявления:</td>
<td class="ft_2"><input type="text" value="" name="advertisement_title" class="in1" id="ad_name_src"/>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
<tr>
<td class="ft_1">Текст объявления:</td>
<td class="ft_3"><textarea cols="0" rows="0" class="txt_a" name="advertisement_text" id="ad_text_src"></textarea>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
<tr>
<td class="ft_1">Цена:</td>
<td class="ft_2"><input type="text" name="advertisement_price" class="in4" gtbfieldid="10" id="ad_price_src">
<select name="advertisement_currency" id="ad_curr_src">
<option value="1">Руб.</option>
<option value="2">EUR</option>
<option value="3">USD</option>
</select>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
<tr>
<td>Файл изображения:</td>
<td><input type="file" size="59" name="advertisement_file" class="in1" id="ad_file_src"/></td>
</tr>
<tr>
<td>Контрольные цифры:</td>
<td>
<img style="border: 1px solid #000000"
src="/captcha.php?get_captcha=<?php echo $captcha_key?>&height=30&width=100"
title="Код подтверждения" name="captcha" /></div>
<div id="captcha" style="clear: both;"><img style="border: 0px"
src="/hostcmsfiles/images/refresh.gif" /> <a href="javascript:void(0);" onclick="ReNewCaptcha(<?php echo $captcha_key?>, 30);return false;">Показать другое число</a></div>
<div style="float: left; margin-left: 5px;"><input type="text"
name="captcha_keystring" /> <input type="hidden" name="captcha_key"
value="<?php echo $captcha_key?>" size="15" /></div>
<div id="captcha" style="clear: both;">Введите число, которое указано
выше.</div>
</td>
</tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="inf_pages">
<a href="javascript:void(0)" title="Отправить" class="ip_r" onClick="goToStepTwo()">Отправить</a>
</div>
</div>
<div id="step_2" style="display: none;">
<h6 class="ch">Подтверждение данных</h6>
<div class="r_info">
<table>
<tbody><tr>
<td class="ri_l">Имя:</td>
<td id='user_name'></td>
</tr>
<tr class="ri_padd">
<td class="ri_l">Регион:</td>
<td>Все</td>
</tr>
<tr>
<td class="ri_l">Телефон:</td>
<td id='user_phone'></td>
</tr>
<tr class="ri_padd">
<td class="ri_l">E-mail:</td>
<td id='user_mail'></td>
</tr>
<tr class="ri_padd">
<td class="ri_l">Объявление:</td>
<td id='ad_info'></td>
</tr>
<tr class="ri_padd">
<td class="ri_l">Цена:</td>
<td><b id='ad_price'></b></td>
</tr>
</tbody></table>
<div class="inf_pages"><a href="javascript:void(0)" title="Редактировать" class="ip_l" onClick=" goToStepOne()" style="margin-right:50px;">Редактировать</a><input type="submit" name="add_advertisement" value=" " title="OK" class="send_btn"></div>
</div>
</div>
</form>
Форма POST, направлена на /board/, но при отправке формы пользователь видит белую страничку с единственной надписью "unknown", почему так происходит я не разобрался но проблему решил добавиви в конец обработчика формы (в настройках ТДС) header("location: /adSign/complete/"
; для перехода на страничку "Спасибо за ваше обьявление".
Но проблема возникла другая, во-первых в писмах подтверждения отсутсвует email и название раздела (хотя в обьявлении они присутствуют и все добавляется куда надо) и не добавляется картинка, хотя название поля я перенес без изменений.
Кто нибудь уже делал свои формы добавления обьявлений, и сталки вался ли с подобным?
Настройки ТДС Доски.
Сделал отдельный шаблон, скопипастил туда форму из настроек ТДС "Доска обьявлений", добавил поле для выбора раздела добавления.
<?php
$Captcha = new Captcha();
$captcha_key = $Captcha->GetCaptchaID();
?>
<script language="javascript">
function goToStepTwo()
{
f1 = document.getElementById('step_1');
f2 = document.getElementById('step_2');
document.getElementById('user_name').innerHTML = document.getElementById('user_name_src').value;
document.getElementById('user_mail').innerHTML = document.getElementById('user_mail_src').value;
document.getElementById('user_phone').innerHTML = document.getElementById('user_phone_src').value;
document.getElementById('ad_info').innerHTML = '<p>'+document.getElementById('ad_group_src').options[document.getElementById('ad_group_src').selectedIndex].text+'<p><h6>'+document.getElementById('ad_name_src').value+'</h6>'+document.getElementById('ad_text_src').value;
document.getElementById('ad_price').innerHTML = document.getElementById('ad_price_src').value+' '+document.getElementById('ad_curr_src').options[document.getElementById('ad_curr_src').selectedIndex].text;
f1.style.display = 'none';
f2.style.display = 'block'
}
function goToStepOne()
{
f1 = document.getElementById('step_1');
f2 = document.getElementById('step_2');
f2.style.display = 'none';
f1.style.display = 'block'
}
</script>
<form method="post" action="/board/" class="f_st1">
<div id="step_1">
<h6 class="ch">Подача объявления</h6>
<div class="fh"><p>Поля обязательные для заполнения:</p></div>
<div class="form_b_st1">
<div class="f_st1_b">
<div class="st1_lit">
<div class="st1_lit_b">
<h6>Личные данные</h6>
<table>
<tbody><tr>
<td class="ft_1">Ваше имя:</td>
<td class="ft_2"><input type="text" name="advertisement_fio" class="in1" gtbfieldid="6" id='user_name_src'>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
<tr>
<td class="ft_1">Регион:</td>
<td class="ft_2"><select class="slt" name=""><option>Все</option></select>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
</tbody></table>
</div>
</div>
<div class="st1_lit">
<div class="st1_lit_b">
<h6>Личные данные</h6>
<h5>Выберети один или оба способа связи:</h5>
<table>
<tbody><tr>
<td class="ft_1">E-mail:</td>
<td class="ft_2"><input type="text" name="advertisement_email" class="in1" gtbfieldid="7" id='user_mail_src'>
<!-- span><img alt="PASS" src="/images/pass.gif"><img alt="OK" src="/images/ok.gif"></span --></td>
<td rowspan="3">
<div class="st1_inf">
<ul>
<li>На ваш адрес не будет рассылаться спам и другие нехорошие вещи.</li>
<li>На ваш телефон не будет рассылаться спам и другие нехорошие вещи.</li>
</ul>
</div>
</td>
</tr>
<tr>
<td class="ft_1">Телефон:</td>
<td class="ft_2"><input type="text" value="" size="70" name="advertisement_phone" class="in1" id="user_phone_src">
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
</tbody></table>
</div>
</div>
<div class="st1_lit">
<div class="st1_lit_b">
<h6>Характеристики объявления</h6>
<table>
<tbody><tr>
<td class="ft_1"></td>
<td class="ft_2"><label class="lb_l">Купля<input type="radio" name=""></label>
<label>Продажа <input type="radio" name=""></label></td>
</tr>
<tr>
<td class="ft_1">Категория:</td>
<td class="ft_2">
<select class="slt" name="group_id" id='ad_group_src'>
<?php
$shop = new shop();
$ShopId = 2;
$rez = array();
$rez = $shop->GetItemPath($ShopId);
$external_propertys = array();
$external_propertys['ТекущаяГруппа'] = $rez['group'];
$param = array('current_group_id' => 0, 'items_on_page' => 10);
$param['xml_show_group_type'] = 'all';
$xsl_catalog = 'выборКатегорииДобавления';
$shop->ShowShop($ShopId, $xsl_catalog, $param, $external_propertys);
?>
</select>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
<tr>
<td class="ft_1">Заголовок объявления:</td>
<td class="ft_2"><input type="text" value="" name="advertisement_title" class="in1" id="ad_name_src"/>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
<tr>
<td class="ft_1">Текст объявления:</td>
<td class="ft_3"><textarea cols="0" rows="0" class="txt_a" name="advertisement_text" id="ad_text_src"></textarea>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
<tr>
<td class="ft_1">Цена:</td>
<td class="ft_2"><input type="text" name="advertisement_price" class="in4" gtbfieldid="10" id="ad_price_src">
<select name="advertisement_currency" id="ad_curr_src">
<option value="1">Руб.</option>
<option value="2">EUR</option>
<option value="3">USD</option>
</select>
<!-- span><img alt="PASS" src="/images/pass.gif"> <img alt="OK" src="/images/ok.gif"></span --></td>
</tr>
<tr>
<td>Файл изображения:</td>
<td><input type="file" size="59" name="advertisement_file" class="in1" id="ad_file_src"/></td>
</tr>
<tr>
<td>Контрольные цифры:</td>
<td>
<img style="border: 1px solid #000000"
src="/captcha.php?get_captcha=<?php echo $captcha_key?>&height=30&width=100"
title="Код подтверждения" name="captcha" /></div>
<div id="captcha" style="clear: both;"><img style="border: 0px"
src="/hostcmsfiles/images/refresh.gif" /> <a href="javascript:void(0);" onclick="ReNewCaptcha(<?php echo $captcha_key?>, 30);return false;">Показать другое число</a></div>
<div style="float: left; margin-left: 5px;"><input type="text"
name="captcha_keystring" /> <input type="hidden" name="captcha_key"
value="<?php echo $captcha_key?>" size="15" /></div>
<div id="captcha" style="clear: both;">Введите число, которое указано
выше.</div>
</td>
</tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="inf_pages">
<a href="javascript:void(0)" title="Отправить" class="ip_r" onClick="goToStepTwo()">Отправить</a>
</div>
</div>
<div id="step_2" style="display: none;">
<h6 class="ch">Подтверждение данных</h6>
<div class="r_info">
<table>
<tbody><tr>
<td class="ri_l">Имя:</td>
<td id='user_name'></td>
</tr>
<tr class="ri_padd">
<td class="ri_l">Регион:</td>
<td>Все</td>
</tr>
<tr>
<td class="ri_l">Телефон:</td>
<td id='user_phone'></td>
</tr>
<tr class="ri_padd">
<td class="ri_l">E-mail:</td>
<td id='user_mail'></td>
</tr>
<tr class="ri_padd">
<td class="ri_l">Объявление:</td>
<td id='ad_info'></td>
</tr>
<tr class="ri_padd">
<td class="ri_l">Цена:</td>
<td><b id='ad_price'></b></td>
</tr>
</tbody></table>
<div class="inf_pages"><a href="javascript:void(0)" title="Редактировать" class="ip_l" onClick=" goToStepOne()" style="margin-right:50px;">Редактировать</a><input type="submit" name="add_advertisement" value=" " title="OK" class="send_btn"></div>
</div>
</div>
</form>
Форма POST, направлена на /board/, но при отправке формы пользователь видит белую страничку с единственной надписью "unknown", почему так происходит я не разобрался но проблему решил добавиви в конец обработчика формы (в настройках ТДС) header("location: /adSign/complete/"
; для перехода на страничку "Спасибо за ваше обьявление". Но проблема возникла другая, во-первых в писмах подтверждения отсутсвует email и название раздела (хотя в обьявлении они присутствуют и все добавляется куда надо) и не добавляется картинка, хотя название поля я перенес без изменений.
Кто нибудь уже делал свои формы добавления обьявлений, и сталки вался ли с подобным?
Настройки ТДС Доски.
<?php
/* Создаем экземпляр класса магазина (при создании устанавливаем флаг необходимости очистки cookie) */
$shop = & singleton('shop');
$kernel = & singleton('kernel');
$current_shop_id = to_int($GLOBALS['LA']['shop_id']);
// получаем для пути ассоциативный массив с id группы и id/url элемента
$GLOBALS['shop_item_path'] = $shop->GetItemPath($current_shop_id);
// Массив разрешенных расширений при загрузке файла
$allow_ext = array('JPG', 'JPEG');
// Обработка AJAX-запроса при формирвоании формы для добавления объявления
if (isset ($_REQUEST['action']) && $_REQUEST['action'] == 'show_form_add_item' && isset ($_REQUEST['group_id']))
{
// Формируем html-код формы добавления объявления
ob_start();
// Идентификатор текущей группы
$current_group_id = to_int($_REQUEST['group_id']);
$Captcha = new Captcha();
$captcha_key = $Captcha->GetCaptchaID();
$advertisement_title = '';
$advertisement_price = '';
$advertisement_text = '';
$advertisement_fio = '';
$advertisement_phone = '';
$advertisement_email = '';
$advertisement_title = '';
?>
<div class="comment">
<div class="tl"></div>
<div class="tr"></div>
<div class="bl"></div>
<div class="br"></div>
<form method="POST" action="./" enctype="multipart/form-data">
<table>
<tr>
<td>Заголовок<br />
<input type="text" name="advertisement_title" size="70"
value="<?php echo $advertisement_title;?>" /></td>
</tr>
<tr>
<td>Цена<br />
<input type="text" name="advertisement_price" size="70"
value="<?php echo $advertisement_price;?>" /></td>
</tr>
<tr>
<td>Текст объявления<br />
<textarea name="advertisement_text" rows="5" cols="53"><?php echo $advertisement_text;?></textarea>
</td>
</tr>
<tr>
<td>Фото<br />
<input type="file" name="advertisement_file" size="59" /></td>
</tr>
<tr>
<td>ФИО<br />
<input type="text" name="advertisement_fio" size="70"
value="<?php echo $advertisement_fio;?>" /></td>
</tr>
<tr>
<td>Тел.<br />
<input type="text" name="advertisement_phone" size="70"
value="<?php echo $advertisement_phone;?>" /></td>
</tr>
<tr>
<td>E-mail<br />
<input type="text" name="advertisement_email" size="70"
value="<?php echo $advertisement_email;?>" /></td>
</tr>
<?php
// Получаем список валют, используемых в доске объявлений
$result_currency = $shop->GetAllCurrency();
?>
<tr>
<td>Валюта<br />
<select name="advertisement_currency">
<?php
while ($row_currency = mysql_fetch_assoc($result_currency))
{
?>
<option value="<?php echo $row_currency['shop_currency_id'];?>"><?php echo $row_currency['shop_currency_international_name'];?></option>
<?php
}
?>
</select></td>
</tr>
<?php
// Получаем список дополнительных свойств группы магазина
$group_propertys_result = $shop->GetPropertiesOfGroup($current_group_id, false, $current_shop_id);
$count_group_propertys = count($group_propertys_result);
// Для группы существуют доп. свойства
if ($count_group_propertys)
{
// В цикле получаем подробную информацию о дополнительных свойствах группы
for ($i = 0; $i < $count_group_propertys; $i++)
{
$item_property = $shop->GetPropretyOfItems($group_propertys_result[$i]);
if ($item_property)
{
if ($item_property['shop_list_of_properties_id'] != 61 && $item_property['shop_list_of_properties_id'] != 4 && $item_property['shop_list_of_properties_id'] != 5 && $item_property['shop_list_of_properties_id'] != 385 && $item_property['shop_list_of_properties_id'] != 129 && $item_property['shop_list_of_properties_id'] != to_int($GLOBALS['LA']['site_users_of_properties_id']) && ($item_property['shop_list_of_properties_type'] != 2 || $item_property['shop_list_of_properties_type'] == 2 && class_exists('lists')))
{
?>
<tr>
<td><?php
switch ($item_property['shop_list_of_properties_type'])
{
case 0 : // Строка
case 3 : // Большое текстовое поле
case 4 : // Визуальный редактор
case 5 : // Дата
case 6 : // Дата-время
{
echo $item_property['shop_list_of_properties_name'];
?> <br />
<input type="text"
name="shop_item_property<?php echo $item_property['shop_list_of_properties_id']?>"
size="70"
value="<?php echo htmlspecialchars(to_str($_REQUEST['shop_item_property'.$item_property['shop_list_of_properties_id']]))?>" />
<?php
break;
}
case 1 : // Файл
{
echo $item_property['shop_list_of_properties_name'];
?> <br />
<input type="file"
name="shop_item_property<?php echo $item_property['shop_list_of_properties_id']?>"
size="59" /> <?php
break;
}
case 2 : // Список
{
if (class_exists('lists'))
{
$list = new lists();
$list_result = $list->SelectListsItems($item_property['lists_id']);
if ($list_result)
{
echo $item_property['shop_list_of_properties_name'];
?> <br />
<select
name="shop_item_property<?php echo $item_property['shop_list_of_properties_id']?>">
<?php
while ($list_row = mysql_fetch_assoc($list_result))
{
$selected = '';
if ($list_row['lists_items_id'] == to_int($_REQUEST['shop_item_property'.$item_property['shop_list_of_properties_id']]))
{
$selected = ' selected="" ';
}
?>
<option value="<?php echo $list_row['lists_items_id']?>"
<?php echo $selected?>><?php echo $list_row['lists_items_value']?></option>
<?php
}
?>
</select> <?php
}
}
break;
}
case 7 : // Флажок
{
if (isset ($_REQUEST['shop_item_property'.$item_property['shop_list_of_properties_id']]))
{
$checked = ' checked="" ';
}
else
{
$checked = '';
}
?> <input type="checkbox"
name="shop_item_property<?php echo $item_property['shop_list_of_properties_id']?>"
<?php echo $checked?> /> <?php
echo $item_property['shop_list_of_properties_name'];
break;
}
default :
{
echo $item_property['shop_list_of_properties_name'];
?> <br />
<input type="text"
name="shop_item_property<?php echo $item_property['shop_list_of_properties_id']?>"
size="70" /> <?php
break;
}
}
?></td>
</tr>
<?php
}
}
}
}
?>
<tr>
<td>
<div style="clear: both; padding-top: 3px;">Контрольные цифры:</div>
<div style="float: left"><img style="border: 1px solid #000000"
src="/captcha.php?get_captcha=<?php echo $captcha_key?>&height=30&width=100"
title="Код подтверждения" name="captcha" /></div>
<div id="captcha" style="clear: both;"><img style="border: 0px"
src="/hostcmsfiles/images/refresh.gif" /> <a
href="javascript:void(0);"
onclick="ReNewCaptcha(<?php echo $captcha_key?>, 30);return false;">Показать
другое число</a></div>
<div style="float: left; margin-left: 5px;"><input type="text"
name="captcha_keystring" /> <input type="hidden" name="captcha_key"
value="<?php echo $captcha_key?>" size="15" /></div>
<div id="captcha" style="clear: both;">Введите число, которое указано
выше.</div>
</td>
</tr>
<tr>
<td><input type="submit" name="add_advertisement" value="Отправить"
onclick="return AjaxSendForm(callbackfunction_SendFormItem, '', this)" /></td>
</tr>
</table>
</form>
</div>
<?php
$form_add_advertisement = ob_get_clean();
$JsHttpRequest = new JsHttpRequest(SITE_CODING);
$GLOBALS['_RESULT'] = array (
'result' => $form_add_advertisement
);
echo $JsHttpRequest->LOADER;
exit ();
}
// Обработка добавления объявления
if (isset ($_REQUEST['add_advertisement']))
{
ob_start();
$Captcha = new Captcha();
if (isset ($_REQUEST['captcha_key']) && isset ($_REQUEST['captcha_keystring']) && $Captcha->ValidCaptcha($_REQUEST['captcha_key'], $_REQUEST['captcha_keystring']))
{
$param = array ();
$param['shops_id'] = $current_shop_id;
//$param['groups_id'] = $GLOBALS['shop_item_path']['group'];
$param['groups_id'] = intval($_POST['group_id']);
$param['name'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_title'])));
$param['description'] = '';
$param['shop_items_catalog_date_time'] = date('Y-m-d H:i:s');
$param['text'] = nl2br(htmlspecialchars(strip_tags(to_str($_POST['advertisement_text']))));
if (class_exists('typograph'))
{
$typograph = new typograph();
$param['text'] = $typograph->ProcessTypographic($param['text'], true);
}
$price_val = str_replace(" ", "", to_str($_POST['advertisement_price']));
$param['currency_id'] = intval($_POST['advertisement_currency']);
$param['price'] = to_float($price_val);
$param['is_active'] = to_int($GLOBALS['LA']['shop_item_is_active']);
$param['order'] = 0;
$param['indexation'] = 1;
$param['seo_title'] = $param['name'];
$param['seo_description'] = $param['name'];
$param['seo_keywords'] = $param['name'];
$param['shop_sallers_id'] = 0;
if (class_exists("SiteUsers"))
{
/* Получаем id текущего пользователя сайта */
$SiteUsers = & singleton('SiteUsers');
$param['site_users_id'] = $SiteUsers->GetCurrentSiteUser();
}
else
{
$param['site_users_id'] = 0;
}
if (isset ($_FILES['advertisement_file']['name']))
{
$ext = $kernel->GetExtension($_FILES['advertisement_file']['name']);
// Если расширение файла разрешено
if (in_array(strtoupper($ext), $allow_ext))
{
$param['path_source_big_image'] = to_str($_FILES['advertisement_file']['tmp_name']);
$param['original_file_name_big_image'] = to_str($_FILES['advertisement_file']['name']);
$param['original_file_name_small_image'] = $param['original_file_name_big_image'];
}
}
$param['use_big_image'] = true;
$param['max_width_big_image'] = to_int($GLOBALS['LA']['max_width_big_image']);
$param['max_height_big_image'] = to_int($GLOBALS['LA']['max_height_big_image']);
$param['max_width_small_image'] = to_int($GLOBALS['LA']['max_width_small_image']);
$param['max_height_small_image'] = to_int($GLOBALS['LA']['max_height_small_image']);
$param['used_watermark_big_image'] = false;
$param['used_watermark_small_image'] = false;
$param['isset_big_image'] = false;
$add_advertisement_id = $shop->InsertItem($param);
if ($add_advertisement_id)
{
// Добавляем Дату и время добавления объявления
$param = array ();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 61;
$param['shop_properties_items_value'] = date('d.m.Y H:i:s');
$shop->InsertPropertiesItem($param);
// Добавляем ФИО
$param = array ();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 4;
$param['shop_properties_items_value'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_fio'])));
$shop->InsertPropertiesItem($param);
// Добавляем Телефон
$param = array ();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 5;
$param['shop_properties_items_value'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_phone'])));
$shop->InsertPropertiesItem($param);
// Добавляем E-mail
$param = array ();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 385;
$param['shop_properties_items_value'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_email'])));
$shop->InsertPropertiesItem($param);
// Получаем список дополнительных свойств раздела объявлений
$group_propertys_result = $shop->GetPropertiesOfGroup($GLOBALS['shop_item_path']['group'], false, $current_shop_id);
$count_group_propertys = count($group_propertys_result);
// Для группы существуют доп. свойства
if ($count_group_propertys)
{
// В цикле получаем подробную информацию о дополнительных свойствах группы
for ($i = 0; $i < $count_group_propertys; $i++)
{
if (isset ($_POST['shop_item_property'.$group_propertys_result[$i]]) || isset ($_FILES['shop_item_property'.$group_propertys_result[$i]]))
{
if (isset ($_POST['shop_item_property'.$group_propertys_result[$i]]))
{
$item_property = $shop->GetPropretyOfItems($group_propertys_result[$i]);
// Доп. свойство - нефлажок и нефайл
if ($item_property['shop_list_of_properties_type'] != 7 && $item_property['shop_list_of_properties_type'] != 2)
{
$property_value = htmlspecialchars(strip_tags(to_str($_POST['shop_item_property'.$group_propertys_result[$i]])));
}
// Доп. свойство - флажок
elseif ($item_property['shop_list_of_properties_type'] == 7)
{
$property_value = 1;
}
// Доп. свойство - список
elseif ($item_property['shop_list_of_properties_type'] == 2)
{
$property_value = to_int($_POST['shop_item_property'.$group_propertys_result[$i]]);
}
$shop_properties_items_value_small = '';
$shop_properties_items_file = '';
$shop_properties_items_file_small = '';
}
else // Доп. свойство - файл
{
$item_dir_path = CMS_FOLDER.UPLOADDIR.'shop_'.$current_shop_id.'/item_catalog_'.$add_advertisement_id;
$ext = $kernel->GetExtension($_FILES['shop_item_property'.$group_propertys_result[$i]]['name']);
// Если расширение файла разрешено
if (in_array(strtoupper($ext), $allow_ext))
{
if ($ext != '')
{
$ext = '.'.$ext;
}
$property_big_file = $item_dir_path.'/shop_property_file_'.$add_advertisement_id.'_'.$group_propertys_result[$i].$ext;
$property_small_file = $item_dir_path.'/small_shop_property_file_'.$add_advertisement_id.'_'.$group_propertys_result[$i].$ext;
$param_load_files = array ();
$param_load_files['path_source_big_image'] = $_FILES['shop_item_property'.$group_propertys_result[$i]]['tmp_name'];
$param_load_files['path_source_small_image'] = '';
$param_load_files['original_file_name_big_image'] = to_str($_FILES['shop_item_property'.$group_propertys_result[$i]]['name']);
$param_load_files['path_target_big_image'] = $property_big_file;
$param_load_files['path_target_small_image'] = $property_small_file;
$param_load_files['original_file_name_small_image'] = $param_load_files['original_file_name_big_image'];
$param_load_files['use_big_image'] = true;
$param_load_files['max_width_big_image'] = to_int($GLOBALS['LA']['max_width_big_image']);
$param_load_files['max_height_big_image'] = to_int($GLOBALS['LA']['max_height_big_image']);
$param_load_files['max_width_small_image'] = to_int($GLOBALS['LA']['max_width_small_image']);
$param_load_files['max_height_small_image'] = to_int($GLOBALS['LA']['max_height_small_image']);
$param_load_files['used_watermark_big_image'] = false;
$param_load_files['used_watermark_small_image'] = false;
$param_load_files['isset_big_image'] = false;
$result = $kernel->AdminLoadFiles($param_load_files);
if ($result['big_image'])
{
$shop_properties_items_file = basename($property_big_file);
$property_value = $param_load_files['original_file_name_big_image'];
}
else
{
$shop_properties_items_file = '';
$property_value = '';
}
if ($result['small_image'])
{
$shop_properties_items_value_small = $param_load_files['original_file_name_small_image'];
$shop_properties_items_file_small = basename($property_small_file);
}
else
{
$shop_properties_items_value_small = '';
$shop_properties_items_file_small = '';
}
}
else
{
$shop_properties_items_file = '';
$property_value = '';
$shop_properties_items_value_small = '';
$shop_properties_items_file_small = '';
}
}
$param = array ();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = $group_propertys_result[$i];
$param['shop_properties_items_value'] = $property_value;
$param['shop_properties_items_value_small'] = $shop_properties_items_value_small;
$param['shop_properties_items_file'] = $shop_properties_items_file;
$param['shop_properties_items_file_small'] = $shop_properties_items_file_small;
$shop->InsertPropertiesItem($param);
}
}
}
// Отправка письма администратору
$message = "Доброе время суток, уважаемый Администратор!\n\nНа доску объявлений была добавлена запись:\n";
$message .= "Автор: ".strip_tags(to_str($_POST['advertisement_fio']))."\n";
$message .= "E-mail: ".strip_tags(to_str($_POST['advertisement_email']))."\n";
$message .= "Доска объявлений: ".to_str($shop_row['shop_shops_name'])."\n";
$shop_group_row = $shop->GetGroup($GLOBALS['shop_item_path']['group']);
$message .= "Раздел доски объявлений: ".to_str($shop_group_row['shop_groups_name'])."\n";
$DateClass = new DateClass();
$date = date('Y-m-d H:i:s');
$message .= "Дата: ".$DateClass->datetime_format($date)."\n";
$message .= "IP-адрес: ".to_str($_SERVER['REMOTE_ADDR'])."\n";
$message .= "Заголовок: ".htmlspecialchars(strip_tags(to_str($_POST['advertisement_title'])))."\n";
$message .= "Текст объявления: ".htmlspecialchars(strip_tags(to_str($_POST['advertisement_text'])));
$subject = 'Новое объявление';
$kernel->SendMailWithFile(EMAIL_TO, EMAIL_TO, $subject, $message, array (), 'text/plain');
header("location: /adSign/complete/");
}
}
else // Ввели неправильный код подтверждения
{
?>
<div id="error">Вы ввели неправильный код подтверждения!</div>
<script type="text/javascript" language="JavaScript">
var captcha_key_input = document.getElementsByName('captcha_key');
if (captcha_key_input[0])
{
ReNewCaptcha(captcha_key_input[0].value, 30);
}
</script>
<?php
}
$message = ob_get_clean();
$JsHttpRequest = new JsHttpRequest(SITE_CODING);
$GLOBALS['_RESULT'] = array (
'message' => $message
);
echo $JsHttpRequest->LOADER;
exit ();
}
/* Если путь существует */
if ($GLOBALS['shop_item_path'])
{
$group_path = '';
// получаем массив с деревом от текущей группы до корня
$mas_groups_to_root = $shop->GetShopGroupsToRoot($GLOBALS['shop_item_path']['group'], $current_shop_id);
// получаем данные о группе
$row_group = $shop->GetGroup($GLOBALS['shop_item_path']['group']);
// получаем данные из seo - полей для групп
$seo_title = trim($row_group['shop_groups_seo_title']);
$seo_description = trim($row_group['shop_groups_seo_description']);
$seo_keywords = trim($row_group['shop_groups_seo_keywords']);
// цикл по массиву с деревом для формирования пути по группам
$count_groups = count($mas_groups_to_root);
for ($i = $count_groups -1; $i >= 0; $i--)
{
if ($i < $count_groups -1)
{
$group_path .= ' - ';
}
if (trim($mas_groups_to_root[$i]['shop_groups_seo_title']) == '')
{
$group_path .= $mas_groups_to_root[$i]['shop_groups_name'];
}
else
{
$group_path .= $mas_groups_to_root[$i]['shop_groups_seo_title'];
}
}
$item_name = '';
/* Если вывод информационного элемента */
if ($GLOBALS['shop_item_path']['item'])
{
// получаем данные о товаре
$row_item = $shop->GetItem($GLOBALS['shop_item_path']['item']);
// имя элемента
$item_name = $row_item['shop_items_catalog_name'];
// проверяем если seo_title непустой, то в заголовок страницы подставляем его
if (trim($row_item['shop_items_catalog_seo_title']) != '')
{
$item_name = trim($row_item['shop_items_catalog_seo_title']);
}
if ($group_path != '')
{
$item_name = ' - '.$item_name;
}
}
/* формируем заголовок страницы */
$new_title = $group_path.$item_name;
}
else
{
// Элемент/группа не найдены, возвращаем 404 ошибку.
ShowHeader404();
// Запрещаем отдавать 200-й заголовок
if (!defined('IS_ERROR_404'))
{
define('IS_ERROR_404', true);
}
$site = & singleton('site');
$site_row = $site->GetSite(CURRENT_SITE);
if ($site_row['site_error404'])
{
$structure = & singleton('Structure');
$structure_id = intval($site_row['site_error404']);
$structure_row = $structure->GetStructureItem($structure_id);
// Если тип - страница
if ($structure_row['structure_type'] == 0)
{
$document = & singleton('documents');
$documents_version_row = $document->GetCurrentDocumentVersion($structure_row['documents_id']);
$documents_version_id = $documents_version_row['documents_version_id'];
// Текущая страница
$kernel->set_current_page(PAGE_DIR . 'documents' . $documents_version_id . '.html');
}
elseif ($structure_row['structure_type'] == 1)
{
// Текущая страница - модуль
$kernel->set_current_page(CMS_FOLDER . 'structure/Modules/Module' . $structure_id . '.php');
}
else
{
/* типовая динамическая страница */
$lib_id = intval($structure_row['lib_id']);
/* Получаем параметры типовой динамической страницы */
$lib = new lib();
$GLOBALS['LA'] = $lib->LoadLibPropertiesValue($lib_id, $structure_id);
$kernel->set_current_page(CMS_FOLDER . "lib/lib_$lib_id/lib_$lib_id.php");
}
// Шаблон вывода для страницы
$kernel->set_current_page_data_template($structure_row['data_templates_id']);
}
elseif (to_str($_SERVER['REQUEST_URI']) != '/')
{
header('Location: /');
// Прекращаем выполнение
exit();
}
}
if (!empty ($new_title))
{
// отображаем группу
if (!isset ($row_item))
{
// Заголовок для группы задан
if (!empty ($seo_title))
{
$kernel->set_title($seo_title);
}
else // Описание для группы не задано
{
$kernel->set_title($new_title);
}
// Описание для группы задано
if (!empty ($seo_description))
{
$kernel->set_description($seo_description);
}
else // Описание для группы не задано
{
$kernel->set_description($new_title);
}
// Ключевые слова для группы заданы
if (!empty ($seo_keywords))
{
$kernel->set_keywords($seo_keywords);
}
else // Ключевые слова для группы не заданы
{
$kernel->set_keywords($new_title);
}
}
else // отображаем элемент
{
// Описание для элемента задано
if (!empty ($row_item['shop_items_catalog_seo_title']))
{
$kernel->set_title(trim($row_item['shop_items_catalog_seo_title']));
}
else // Описание для элемента не задано
{
$kernel->set_title($new_title);
}
// Описание для элемента задано
if (!empty ($row_item['shop_items_catalog_seo_description']))
{
$kernel->set_description(trim($row_item['shop_items_catalog_seo_description']));
}
else // Описание для элемента не задано
{
$kernel->set_description($new_title);
}
// Ключевые слова для элемента заданы
if (!empty ($row_item['shop_items_catalog_seo_keywords']))
{
$kernel->set_keywords(trim($row_item['shop_items_catalog_seo_keywords']));
}
else // Ключевые слова для элемента не заданы
{
$kernel->set_keywords($new_title);
}
}
}
?>
/* Создаем экземпляр класса магазина (при создании устанавливаем флаг необходимости очистки cookie) */
$shop = & singleton('shop');
$kernel = & singleton('kernel');
$current_shop_id = to_int($GLOBALS['LA']['shop_id']);
// получаем для пути ассоциативный массив с id группы и id/url элемента
$GLOBALS['shop_item_path'] = $shop->GetItemPath($current_shop_id);
// Массив разрешенных расширений при загрузке файла
$allow_ext = array('JPG', 'JPEG');
// Обработка AJAX-запроса при формирвоании формы для добавления объявления
if (isset ($_REQUEST['action']) && $_REQUEST['action'] == 'show_form_add_item' && isset ($_REQUEST['group_id']))
{
// Формируем html-код формы добавления объявления
ob_start();
// Идентификатор текущей группы
$current_group_id = to_int($_REQUEST['group_id']);
$Captcha = new Captcha();
$captcha_key = $Captcha->GetCaptchaID();
$advertisement_title = '';
$advertisement_price = '';
$advertisement_text = '';
$advertisement_fio = '';
$advertisement_phone = '';
$advertisement_email = '';
$advertisement_title = '';
?>
<div class="comment">
<div class="tl"></div>
<div class="tr"></div>
<div class="bl"></div>
<div class="br"></div>
<form method="POST" action="./" enctype="multipart/form-data">
<table>
<tr>
<td>Заголовок<br />
<input type="text" name="advertisement_title" size="70"
value="<?php echo $advertisement_title;?>" /></td>
</tr>
<tr>
<td>Цена<br />
<input type="text" name="advertisement_price" size="70"
value="<?php echo $advertisement_price;?>" /></td>
</tr>
<tr>
<td>Текст объявления<br />
<textarea name="advertisement_text" rows="5" cols="53"><?php echo $advertisement_text;?></textarea>
</td>
</tr>
<tr>
<td>Фото<br />
<input type="file" name="advertisement_file" size="59" /></td>
</tr>
<tr>
<td>ФИО<br />
<input type="text" name="advertisement_fio" size="70"
value="<?php echo $advertisement_fio;?>" /></td>
</tr>
<tr>
<td>Тел.<br />
<input type="text" name="advertisement_phone" size="70"
value="<?php echo $advertisement_phone;?>" /></td>
</tr>
<tr>
<td>E-mail<br />
<input type="text" name="advertisement_email" size="70"
value="<?php echo $advertisement_email;?>" /></td>
</tr>
<?php
// Получаем список валют, используемых в доске объявлений
$result_currency = $shop->GetAllCurrency();
?>
<tr>
<td>Валюта<br />
<select name="advertisement_currency">
<?php
while ($row_currency = mysql_fetch_assoc($result_currency))
{
?>
<option value="<?php echo $row_currency['shop_currency_id'];?>"><?php echo $row_currency['shop_currency_international_name'];?></option>
<?php
}
?>
</select></td>
</tr>
<?php
// Получаем список дополнительных свойств группы магазина
$group_propertys_result = $shop->GetPropertiesOfGroup($current_group_id, false, $current_shop_id);
$count_group_propertys = count($group_propertys_result);
// Для группы существуют доп. свойства
if ($count_group_propertys)
{
// В цикле получаем подробную информацию о дополнительных свойствах группы
for ($i = 0; $i < $count_group_propertys; $i++)
{
$item_property = $shop->GetPropretyOfItems($group_propertys_result[$i]);
if ($item_property)
{
if ($item_property['shop_list_of_properties_id'] != 61 && $item_property['shop_list_of_properties_id'] != 4 && $item_property['shop_list_of_properties_id'] != 5 && $item_property['shop_list_of_properties_id'] != 385 && $item_property['shop_list_of_properties_id'] != 129 && $item_property['shop_list_of_properties_id'] != to_int($GLOBALS['LA']['site_users_of_properties_id']) && ($item_property['shop_list_of_properties_type'] != 2 || $item_property['shop_list_of_properties_type'] == 2 && class_exists('lists')))
{
?>
<tr>
<td><?php
switch ($item_property['shop_list_of_properties_type'])
{
case 0 : // Строка
case 3 : // Большое текстовое поле
case 4 : // Визуальный редактор
case 5 : // Дата
case 6 : // Дата-время
{
echo $item_property['shop_list_of_properties_name'];
?> <br />
<input type="text"
name="shop_item_property<?php echo $item_property['shop_list_of_properties_id']?>"
size="70"
value="<?php echo htmlspecialchars(to_str($_REQUEST['shop_item_property'.$item_property['shop_list_of_properties_id']]))?>" />
<?php
break;
}
case 1 : // Файл
{
echo $item_property['shop_list_of_properties_name'];
?> <br />
<input type="file"
name="shop_item_property<?php echo $item_property['shop_list_of_properties_id']?>"
size="59" /> <?php
break;
}
case 2 : // Список
{
if (class_exists('lists'))
{
$list = new lists();
$list_result = $list->SelectListsItems($item_property['lists_id']);
if ($list_result)
{
echo $item_property['shop_list_of_properties_name'];
?> <br />
<select
name="shop_item_property<?php echo $item_property['shop_list_of_properties_id']?>">
<?php
while ($list_row = mysql_fetch_assoc($list_result))
{
$selected = '';
if ($list_row['lists_items_id'] == to_int($_REQUEST['shop_item_property'.$item_property['shop_list_of_properties_id']]))
{
$selected = ' selected="" ';
}
?>
<option value="<?php echo $list_row['lists_items_id']?>"
<?php echo $selected?>><?php echo $list_row['lists_items_value']?></option>
<?php
}
?>
</select> <?php
}
}
break;
}
case 7 : // Флажок
{
if (isset ($_REQUEST['shop_item_property'.$item_property['shop_list_of_properties_id']]))
{
$checked = ' checked="" ';
}
else
{
$checked = '';
}
?> <input type="checkbox"
name="shop_item_property<?php echo $item_property['shop_list_of_properties_id']?>"
<?php echo $checked?> /> <?php
echo $item_property['shop_list_of_properties_name'];
break;
}
default :
{
echo $item_property['shop_list_of_properties_name'];
?> <br />
<input type="text"
name="shop_item_property<?php echo $item_property['shop_list_of_properties_id']?>"
size="70" /> <?php
break;
}
}
?></td>
</tr>
<?php
}
}
}
}
?>
<tr>
<td>
<div style="clear: both; padding-top: 3px;">Контрольные цифры:</div>
<div style="float: left"><img style="border: 1px solid #000000"
src="/captcha.php?get_captcha=<?php echo $captcha_key?>&height=30&width=100"
title="Код подтверждения" name="captcha" /></div>
<div id="captcha" style="clear: both;"><img style="border: 0px"
src="/hostcmsfiles/images/refresh.gif" /> <a
href="javascript:void(0);"
onclick="ReNewCaptcha(<?php echo $captcha_key?>, 30);return false;">Показать
другое число</a></div>
<div style="float: left; margin-left: 5px;"><input type="text"
name="captcha_keystring" /> <input type="hidden" name="captcha_key"
value="<?php echo $captcha_key?>" size="15" /></div>
<div id="captcha" style="clear: both;">Введите число, которое указано
выше.</div>
</td>
</tr>
<tr>
<td><input type="submit" name="add_advertisement" value="Отправить"
onclick="return AjaxSendForm(callbackfunction_SendFormItem, '', this)" /></td>
</tr>
</table>
</form>
</div>
<?php
$form_add_advertisement = ob_get_clean();
$JsHttpRequest = new JsHttpRequest(SITE_CODING);
$GLOBALS['_RESULT'] = array (
'result' => $form_add_advertisement
);
echo $JsHttpRequest->LOADER;
exit ();
}
// Обработка добавления объявления
if (isset ($_REQUEST['add_advertisement']))
{
ob_start();
$Captcha = new Captcha();
if (isset ($_REQUEST['captcha_key']) && isset ($_REQUEST['captcha_keystring']) && $Captcha->ValidCaptcha($_REQUEST['captcha_key'], $_REQUEST['captcha_keystring']))
{
$param = array ();
$param['shops_id'] = $current_shop_id;
//$param['groups_id'] = $GLOBALS['shop_item_path']['group'];
$param['groups_id'] = intval($_POST['group_id']);
$param['name'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_title'])));
$param['description'] = '';
$param['shop_items_catalog_date_time'] = date('Y-m-d H:i:s');
$param['text'] = nl2br(htmlspecialchars(strip_tags(to_str($_POST['advertisement_text']))));
if (class_exists('typograph'))
{
$typograph = new typograph();
$param['text'] = $typograph->ProcessTypographic($param['text'], true);
}
$price_val = str_replace(" ", "", to_str($_POST['advertisement_price']));
$param['currency_id'] = intval($_POST['advertisement_currency']);
$param['price'] = to_float($price_val);
$param['is_active'] = to_int($GLOBALS['LA']['shop_item_is_active']);
$param['order'] = 0;
$param['indexation'] = 1;
$param['seo_title'] = $param['name'];
$param['seo_description'] = $param['name'];
$param['seo_keywords'] = $param['name'];
$param['shop_sallers_id'] = 0;
if (class_exists("SiteUsers"))
{
/* Получаем id текущего пользователя сайта */
$SiteUsers = & singleton('SiteUsers');
$param['site_users_id'] = $SiteUsers->GetCurrentSiteUser();
}
else
{
$param['site_users_id'] = 0;
}
if (isset ($_FILES['advertisement_file']['name']))
{
$ext = $kernel->GetExtension($_FILES['advertisement_file']['name']);
// Если расширение файла разрешено
if (in_array(strtoupper($ext), $allow_ext))
{
$param['path_source_big_image'] = to_str($_FILES['advertisement_file']['tmp_name']);
$param['original_file_name_big_image'] = to_str($_FILES['advertisement_file']['name']);
$param['original_file_name_small_image'] = $param['original_file_name_big_image'];
}
}
$param['use_big_image'] = true;
$param['max_width_big_image'] = to_int($GLOBALS['LA']['max_width_big_image']);
$param['max_height_big_image'] = to_int($GLOBALS['LA']['max_height_big_image']);
$param['max_width_small_image'] = to_int($GLOBALS['LA']['max_width_small_image']);
$param['max_height_small_image'] = to_int($GLOBALS['LA']['max_height_small_image']);
$param['used_watermark_big_image'] = false;
$param['used_watermark_small_image'] = false;
$param['isset_big_image'] = false;
$add_advertisement_id = $shop->InsertItem($param);
if ($add_advertisement_id)
{
// Добавляем Дату и время добавления объявления
$param = array ();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 61;
$param['shop_properties_items_value'] = date('d.m.Y H:i:s');
$shop->InsertPropertiesItem($param);
// Добавляем ФИО
$param = array ();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 4;
$param['shop_properties_items_value'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_fio'])));
$shop->InsertPropertiesItem($param);
// Добавляем Телефон
$param = array ();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 5;
$param['shop_properties_items_value'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_phone'])));
$shop->InsertPropertiesItem($param);
// Добавляем E-mail
$param = array ();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 385;
$param['shop_properties_items_value'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_email'])));
$shop->InsertPropertiesItem($param);
// Получаем список дополнительных свойств раздела объявлений
$group_propertys_result = $shop->GetPropertiesOfGroup($GLOBALS['shop_item_path']['group'], false, $current_shop_id);
$count_group_propertys = count($group_propertys_result);
// Для группы существуют доп. свойства
if ($count_group_propertys)
{
// В цикле получаем подробную информацию о дополнительных свойствах группы
for ($i = 0; $i < $count_group_propertys; $i++)
{
if (isset ($_POST['shop_item_property'.$group_propertys_result[$i]]) || isset ($_FILES['shop_item_property'.$group_propertys_result[$i]]))
{
if (isset ($_POST['shop_item_property'.$group_propertys_result[$i]]))
{
$item_property = $shop->GetPropretyOfItems($group_propertys_result[$i]);
// Доп. свойство - нефлажок и нефайл
if ($item_property['shop_list_of_properties_type'] != 7 && $item_property['shop_list_of_properties_type'] != 2)
{
$property_value = htmlspecialchars(strip_tags(to_str($_POST['shop_item_property'.$group_propertys_result[$i]])));
}
// Доп. свойство - флажок
elseif ($item_property['shop_list_of_properties_type'] == 7)
{
$property_value = 1;
}
// Доп. свойство - список
elseif ($item_property['shop_list_of_properties_type'] == 2)
{
$property_value = to_int($_POST['shop_item_property'.$group_propertys_result[$i]]);
}
$shop_properties_items_value_small = '';
$shop_properties_items_file = '';
$shop_properties_items_file_small = '';
}
else // Доп. свойство - файл
{
$item_dir_path = CMS_FOLDER.UPLOADDIR.'shop_'.$current_shop_id.'/item_catalog_'.$add_advertisement_id;
$ext = $kernel->GetExtension($_FILES['shop_item_property'.$group_propertys_result[$i]]['name']);
// Если расширение файла разрешено
if (in_array(strtoupper($ext), $allow_ext))
{
if ($ext != '')
{
$ext = '.'.$ext;
}
$property_big_file = $item_dir_path.'/shop_property_file_'.$add_advertisement_id.'_'.$group_propertys_result[$i].$ext;
$property_small_file = $item_dir_path.'/small_shop_property_file_'.$add_advertisement_id.'_'.$group_propertys_result[$i].$ext;
$param_load_files = array ();
$param_load_files['path_source_big_image'] = $_FILES['shop_item_property'.$group_propertys_result[$i]]['tmp_name'];
$param_load_files['path_source_small_image'] = '';
$param_load_files['original_file_name_big_image'] = to_str($_FILES['shop_item_property'.$group_propertys_result[$i]]['name']);
$param_load_files['path_target_big_image'] = $property_big_file;
$param_load_files['path_target_small_image'] = $property_small_file;
$param_load_files['original_file_name_small_image'] = $param_load_files['original_file_name_big_image'];
$param_load_files['use_big_image'] = true;
$param_load_files['max_width_big_image'] = to_int($GLOBALS['LA']['max_width_big_image']);
$param_load_files['max_height_big_image'] = to_int($GLOBALS['LA']['max_height_big_image']);
$param_load_files['max_width_small_image'] = to_int($GLOBALS['LA']['max_width_small_image']);
$param_load_files['max_height_small_image'] = to_int($GLOBALS['LA']['max_height_small_image']);
$param_load_files['used_watermark_big_image'] = false;
$param_load_files['used_watermark_small_image'] = false;
$param_load_files['isset_big_image'] = false;
$result = $kernel->AdminLoadFiles($param_load_files);
if ($result['big_image'])
{
$shop_properties_items_file = basename($property_big_file);
$property_value = $param_load_files['original_file_name_big_image'];
}
else
{
$shop_properties_items_file = '';
$property_value = '';
}
if ($result['small_image'])
{
$shop_properties_items_value_small = $param_load_files['original_file_name_small_image'];
$shop_properties_items_file_small = basename($property_small_file);
}
else
{
$shop_properties_items_value_small = '';
$shop_properties_items_file_small = '';
}
}
else
{
$shop_properties_items_file = '';
$property_value = '';
$shop_properties_items_value_small = '';
$shop_properties_items_file_small = '';
}
}
$param = array ();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = $group_propertys_result[$i];
$param['shop_properties_items_value'] = $property_value;
$param['shop_properties_items_value_small'] = $shop_properties_items_value_small;
$param['shop_properties_items_file'] = $shop_properties_items_file;
$param['shop_properties_items_file_small'] = $shop_properties_items_file_small;
$shop->InsertPropertiesItem($param);
}
}
}
// Отправка письма администратору
$message = "Доброе время суток, уважаемый Администратор!\n\nНа доску объявлений была добавлена запись:\n";
$message .= "Автор: ".strip_tags(to_str($_POST['advertisement_fio']))."\n";
$message .= "E-mail: ".strip_tags(to_str($_POST['advertisement_email']))."\n";
$message .= "Доска объявлений: ".to_str($shop_row['shop_shops_name'])."\n";
$shop_group_row = $shop->GetGroup($GLOBALS['shop_item_path']['group']);
$message .= "Раздел доски объявлений: ".to_str($shop_group_row['shop_groups_name'])."\n";
$DateClass = new DateClass();
$date = date('Y-m-d H:i:s');
$message .= "Дата: ".$DateClass->datetime_format($date)."\n";
$message .= "IP-адрес: ".to_str($_SERVER['REMOTE_ADDR'])."\n";
$message .= "Заголовок: ".htmlspecialchars(strip_tags(to_str($_POST['advertisement_title'])))."\n";
$message .= "Текст объявления: ".htmlspecialchars(strip_tags(to_str($_POST['advertisement_text'])));
$subject = 'Новое объявление';
$kernel->SendMailWithFile(EMAIL_TO, EMAIL_TO, $subject, $message, array (), 'text/plain');
header("location: /adSign/complete/");
}
}
else // Ввели неправильный код подтверждения
{
?>
<div id="error">Вы ввели неправильный код подтверждения!</div>
<script type="text/javascript" language="JavaScript">
var captcha_key_input = document.getElementsByName('captcha_key');
if (captcha_key_input[0])
{
ReNewCaptcha(captcha_key_input[0].value, 30);
}
</script>
<?php
}
$message = ob_get_clean();
$JsHttpRequest = new JsHttpRequest(SITE_CODING);
$GLOBALS['_RESULT'] = array (
'message' => $message
);
echo $JsHttpRequest->LOADER;
exit ();
}
/* Если путь существует */
if ($GLOBALS['shop_item_path'])
{
$group_path = '';
// получаем массив с деревом от текущей группы до корня
$mas_groups_to_root = $shop->GetShopGroupsToRoot($GLOBALS['shop_item_path']['group'], $current_shop_id);
// получаем данные о группе
$row_group = $shop->GetGroup($GLOBALS['shop_item_path']['group']);
// получаем данные из seo - полей для групп
$seo_title = trim($row_group['shop_groups_seo_title']);
$seo_description = trim($row_group['shop_groups_seo_description']);
$seo_keywords = trim($row_group['shop_groups_seo_keywords']);
// цикл по массиву с деревом для формирования пути по группам
$count_groups = count($mas_groups_to_root);
for ($i = $count_groups -1; $i >= 0; $i--)
{
if ($i < $count_groups -1)
{
$group_path .= ' - ';
}
if (trim($mas_groups_to_root[$i]['shop_groups_seo_title']) == '')
{
$group_path .= $mas_groups_to_root[$i]['shop_groups_name'];
}
else
{
$group_path .= $mas_groups_to_root[$i]['shop_groups_seo_title'];
}
}
$item_name = '';
/* Если вывод информационного элемента */
if ($GLOBALS['shop_item_path']['item'])
{
// получаем данные о товаре
$row_item = $shop->GetItem($GLOBALS['shop_item_path']['item']);
// имя элемента
$item_name = $row_item['shop_items_catalog_name'];
// проверяем если seo_title непустой, то в заголовок страницы подставляем его
if (trim($row_item['shop_items_catalog_seo_title']) != '')
{
$item_name = trim($row_item['shop_items_catalog_seo_title']);
}
if ($group_path != '')
{
$item_name = ' - '.$item_name;
}
}
/* формируем заголовок страницы */
$new_title = $group_path.$item_name;
}
else
{
// Элемент/группа не найдены, возвращаем 404 ошибку.
ShowHeader404();
// Запрещаем отдавать 200-й заголовок
if (!defined('IS_ERROR_404'))
{
define('IS_ERROR_404', true);
}
$site = & singleton('site');
$site_row = $site->GetSite(CURRENT_SITE);
if ($site_row['site_error404'])
{
$structure = & singleton('Structure');
$structure_id = intval($site_row['site_error404']);
$structure_row = $structure->GetStructureItem($structure_id);
// Если тип - страница
if ($structure_row['structure_type'] == 0)
{
$document = & singleton('documents');
$documents_version_row = $document->GetCurrentDocumentVersion($structure_row['documents_id']);
$documents_version_id = $documents_version_row['documents_version_id'];
// Текущая страница
$kernel->set_current_page(PAGE_DIR . 'documents' . $documents_version_id . '.html');
}
elseif ($structure_row['structure_type'] == 1)
{
// Текущая страница - модуль
$kernel->set_current_page(CMS_FOLDER . 'structure/Modules/Module' . $structure_id . '.php');
}
else
{
/* типовая динамическая страница */
$lib_id = intval($structure_row['lib_id']);
/* Получаем параметры типовой динамической страницы */
$lib = new lib();
$GLOBALS['LA'] = $lib->LoadLibPropertiesValue($lib_id, $structure_id);
$kernel->set_current_page(CMS_FOLDER . "lib/lib_$lib_id/lib_$lib_id.php");
}
// Шаблон вывода для страницы
$kernel->set_current_page_data_template($structure_row['data_templates_id']);
}
elseif (to_str($_SERVER['REQUEST_URI']) != '/')
{
header('Location: /');
// Прекращаем выполнение
exit();
}
}
if (!empty ($new_title))
{
// отображаем группу
if (!isset ($row_item))
{
// Заголовок для группы задан
if (!empty ($seo_title))
{
$kernel->set_title($seo_title);
}
else // Описание для группы не задано
{
$kernel->set_title($new_title);
}
// Описание для группы задано
if (!empty ($seo_description))
{
$kernel->set_description($seo_description);
}
else // Описание для группы не задано
{
$kernel->set_description($new_title);
}
// Ключевые слова для группы заданы
if (!empty ($seo_keywords))
{
$kernel->set_keywords($seo_keywords);
}
else // Ключевые слова для группы не заданы
{
$kernel->set_keywords($new_title);
}
}
else // отображаем элемент
{
// Описание для элемента задано
if (!empty ($row_item['shop_items_catalog_seo_title']))
{
$kernel->set_title(trim($row_item['shop_items_catalog_seo_title']));
}
else // Описание для элемента не задано
{
$kernel->set_title($new_title);
}
// Описание для элемента задано
if (!empty ($row_item['shop_items_catalog_seo_description']))
{
$kernel->set_description(trim($row_item['shop_items_catalog_seo_description']));
}
else // Описание для элемента не задано
{
$kernel->set_description($new_title);
}
// Ключевые слова для элемента заданы
if (!empty ($row_item['shop_items_catalog_seo_keywords']))
{
$kernel->set_keywords(trim($row_item['shop_items_catalog_seo_keywords']));
}
else // Ключевые слова для элемента не заданы
{
$kernel->set_keywords($new_title);
}
}
}
?>
Подскажите хоть в какую сторону копать, судя по тому что обьявление все же добавляется, форма отправляется штатно, но почему не заливаются картинки? Есть ли возможность дебага в какой бы то ни было форме?
wingedlion1 писал(а):
Например, в самом начале обработки добавления выводите
А по существу вопроса ничего не скажу - своих форм к доске не прикручивал.
Есть ли возможность дебага в какой бы то ни было форме?
А форма дебага тут почти везде одна.echo '<pre>';
в самом начале ТДС, а потом в каждом сомнительном месте выводить сомнительные переменные, с помощью, либо echo 'variable_name = ' . $variable_name . "\n";
либо print_r($variable_name);
, и смотреть где что не так.Например, в самом начале обработки добавления выводите
print_r($_POST)
и смотрите все ли передалось. Если не все, то ищите причину, если все то переходите к следующему шагу обработки и выводите там участвующие в деле переменные, например распечатываете массив $param, передаваемый в метод InsertPropertiesItem($param) и смотрите все ли туда передалось из того что должно было. А скорее всего не все, тогда значит ошибка где-то между этими двумя выводами переменных.А по существу вопроса ничего не скажу - своих форм к доске не прикручивал.
Заказов не беру. Консультирую редко.
если убрать header(...), а как известно он и сам не сработает если произвести какой нибудь вывод до него, то попадаю на пустую страницу с одним словом "unknown" (((
wingedlion1,
Только по коду боюсь на форуме помочь не удастся, нужно в поддержку обращаться.
Только по коду боюсь на форуме помочь не удастся, нужно в поддержку обращаться.
Проблема с картинкой решилась, я забыл указать "multipart/formdata" в форме.
Авторизация