Доска объявлений v5
<?
$Captcha = new Captcha();
$xsl_catalog = to_str($GLOBALS['LA']['xsl_catalog']);
$xsl_item = to_str($GLOBALS['LA']['xsl_item']);
$current_shop_id = to_int($GLOBALS['LA']['shop_id']);
$param = array();
$shop = & singleton('shop');
if ($GLOBALS['shop_item_path'] != false)
{
if (class_exists("SiteUsers"))
{
/* Получаем id текущего пользователя сайта */
$SiteUsers = & singleton('SiteUsers');
$param['user_id'] = $SiteUsers->GetCurrentSiteUser();
}
$external_propertys = array();
$advertisement_title = '';
$advertisement_price = '';
$advertisement_text = '';
$advertisement_fio = '';
$advertisement_phone = '';
$advertisement_email = '';
// Обработка добавления объявления
if (isset($_REQUEST['add_advertisement']))
{
if (isset($_REQUEST['captcha_key']) && isset($_REQUEST['captcha_keystring']) &&
$Captcha->ValidCaptcha($_REQUEST['captcha_key'],$_REQUEST['captcha_keystring']))
{
$external_propertys['message'] = 'Спасибо, объявление добавлено!';
$div_style = 'none';
$param = array();
$param['shops_id'] = $current_shop_id;
$param['groups_id'] = $GLOBALS['shop_item_path']['group'];
$param['name'] = to_str($_POST['advertisement_title']);
$param['description'] = '';
$param['shop_items_catalog_date_time'] = date('Y-m-d H:i:s');
$param['text'] = to_str($_POST['advertisement_text']);
if (class_exists('typograph'))
{
$typograph = new typograph();
$param['text'] = $typograph->ProcessTypographic($param['text'], true);
}
$param['currency_id'] = 1;
$param['price'] = to_float($_POST['advertisement_price']);
//$param['is_active'] = 0; //премодерация
$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;
$param['path_source_big_image'] = to_str($_FILES['advertisement_file']['tmp_name']);
//$param['path_source_small_image'] = $param['path_source_big_image'];
$param['original_file_name_big_image'] = to_str($_FILES['advertisement_file']['name']);
//$param['path_target_big_image'] = $item_big_image;
//$param['path_target_small_image'] = $item_small_image;
$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'] = 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'] = 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'] = 6;
$param['shop_properties_items_value'] = to_str($_POST['advertisement_email']);
$shop->InsertPropertiesItem($param);
// Получаем список дополнительных свойств раздела объявлений
$group_propertys_result = $shop->GetPropertiesOfGroup($GLOBALS['shop_item_path']['group']);
$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 = 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;
$kernel = & singleton('kernel');
$ext = $kernel->GetExtension($_FILES['shop_item_property' . $group_propertys_result[$i]]['name']);
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
{
$property_value = '';
$shop_properties_items_file = '';
}
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 = '';
}
}
$param = array();
if($group_propertys_result[$i] == 212)
{
$property_value = 0;
}
$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);
}
}
}
}
}
else // Ввели неправильный код подтверждения
{
$external_propertys['message'] = 'Вы ввели неправильный код подтверждения!';
$div_style = 'block';
$advertisement_title = to_str($_REQUEST['advertisement_title']);
$advertisement_price = to_str($_REQUEST['advertisement_price']);
$advertisement_text = to_str($_REQUEST['advertisement_text']);
$advertisement_fio = to_str($_REQUEST['advertisement_fio']);
$advertisement_phone = to_str($_REQUEST['advertisement_phone']);
$advertisement_email = to_str($_REQUEST['advertisement_email']);
}
}
else
{
$div_style = 'none';
}
/* Вывод списка */
if (!$GLOBALS['shop_item_path']['item'])
{
$param['current_group_id'] = $GLOBALS['shop_item_path']['group']; // корневая группа
/* Определяем номер элемента, с которого начинается показ в текущей группе */
$page = end($GLOBALS['URL_ARRAY']);
$page = to_str($page);
$shop_row = $GLOBALS['shops']->GetShop($current_shop_id);
if ($shop_row)
{
$items_on_page = $shop_row['shop_items_on_page'];
}
else
{
$items_on_page = 10;
}
/*
Порядок сортировки ('Asc' - по возрастанию, 'Desc' - по убыванию, 'Rand' - произвольный порядок)
$param['items_order']='Asc';
Поле, по которому сортируем (наименование элемента)
$param['items_field_order']='shop_items_catalog_name';
*/
/* Ограничиваем по производителю */
if (to_int($_GET['producer_id']) > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_producers_list_id';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '='; // Условие
$element['value'] = to_int($_GET['producer_id']);
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['producer_id'] = to_int($_GET['producer_id']);
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
/* Ограничиваем по продавцу */
if (to_int($_GET['saller_id']) > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_sallers_id';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '='; // Условие
$element['value'] = to_int($_GET['saller_id']);
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['saller_id'] = to_int($_GET['saller_id']);
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
$price_from = str_replace(',', '.', to_float($_GET['price_from']));
/* Ограничиваем по цене ОТ */
if ($price_from > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_items_catalog_price';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '>'; // Условие
$element['value'] = $price_from;
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['price_from'] = $price_from;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
$price_to = str_replace(',', '.', to_float($_GET['price_to']));
/* Ограничиваем по цене ДО */
if ($price_to > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_items_catalog_price';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '<'; // Условие
$element['value'] = $price_to;
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['price_to'] = $price_to;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
/* Число элементов на странице */
$on_page = to_int($_GET['on_page']);
if ($on_page > 0 && $on_page < 150)
{
$param['items_on_page'] = $on_page;
$external_propertys['on_page'] = $on_page;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
// Определяем номер страницы.
if ($on_page)
{
$items_on_page = $on_page;
}
if (ereg("^page-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 1)
{
/* Страница умножается на кол-во элементов, выводимых на страницу */
$items_begin = ($regs[1] - 1) * $items_on_page;
}
else
{
$items_begin = 0;
}
$param['items_begin'] = $items_begin;
/* Направление сортировки, 0 - по-возрастанию, 1 - по-убыванию */
$order_direction = to_int($_GET['order_direction']);
switch ($order_direction)
{
case 1: /* По-возрастанию */
{
$order_direction = 'ASC';
break;
}
case 2: /* По-убыванию */
{
$order_direction = 'DESC';
break;
}
default: /* По-умолчанию */
{
$order_direction = 'ASC';
break;
}
}
/* Поле сортировки */
$sort_field = to_int($_GET['sort_by_field']);
switch ($sort_field)
{
case 1: /* По имени */
{
$param['items_field_order'] = 'shop_items_catalog_name';
$param['items_order'] = $order_direction;
$external_propertys['sort_by_field'] = $sort_field;
$external_propertys['order_direction'] = $order_direction;
break;
}
case 2: /* По цене */
{
$param['items_field_order'] = 'shop_items_catalog_price';
$param['items_order'] = $order_direction;
$external_propertys['sort_by_field'] = $sort_field;
$external_propertys['order_direction'] = $order_direction;
break;
}
}
/* Обработка дополнительных свойств.
Получаем список свойств, разрешенных для отображения в данной группе и в фильтре */
$resource_properties = $shop->GetPropertiesOfGroupForXml($current_shop_id, $param['current_group_id']);
if ($resource_properties)
{
$element['type'] = 0; /* 0 - основное св-во, 1 - дополнительное */
/* Префикс, если нужен. */
$element['prefix'] = ' and ('; // префикс
/* ОСТАВЛЯЕТЕ БЕЗ ИЗМЕНЕНИЙ, ЭТО НУЖНО ДЛЯ СОРТИРОВКИ */
$element['name'] = ''; // Имя
/* поля для основного св-ва, если тип = 1, то не указывается */
$element['if'] = ''; // Условие
/* Вот здесь передается ID доп. св-ва, по которому производится сортировка.
ID ВАШЕГО ПОЛЯ УКАЗЫВАЕТЕ ЗДЕСЬ */
$element['value'] = ''; /* Значение поля (или параметра) */
$element['sufix']=' ';
/* Добавляем в общий список условий */
$param['select'][] = $element;
$count_condition = 0;
$property_xml = '';
$count_properties = mysql_num_rows($resource_properties);
for ($i = 0; $i < $count_properties; $i++)
{
$row = mysql_fetch_assoc($resource_properties);
$element['value'] = 0;
foreach ($_GET as $key => $value)
{
if (preg_match("/property_id_{$row['shop_list_of_properties_id']}_item_id_(\d*)/", $key, $matches))
{
$get_param = 'property_id_'.$row['shop_list_of_properties_id'].'_item_id_'.$matches[1];
if (isset($_GET[$get_param]) > 0 && to_int($matches[1]) > 0)
{
$element['value'] = to_int($matches[1]);
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id']).'_item_id_'.$element['value']] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'_item_id_'.$element['value'].'='.$element['value'];
}
}
}
/* Выбираем режим отображения */
$get_param = 'property_id_'.$row['shop_list_of_properties_id'];
if (isset($_GET[$get_param]))
{
if ($row['shop_list_of_properties_type'] == 0 || $row['shop_list_of_properties_show_kind'] == 1)
{
if (to_str($_GET[$get_param]) ==! "")
{
$element['value'] = quote_smart(to_str($_GET[$get_param]));
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
}
// Флажок
elseif($row['shop_list_of_properties_type'] == 7)
{
$element['value'] = 1;
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
else
{
if (to_int($_GET[$get_param]) > 0)
{
$element['value'] = to_int($_GET[$get_param]);
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
}
}
if ($element['value'])
{
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
$element['property_id'] = to_int($row['shop_list_of_properties_id']);
$element['type'] = 1; /* 0 - основное св-во, 1 - дополнительное */
//$element['prefix'] = 'AND'; /* префикс */
$element['if'] = '='; /* Условие */
$element['sufix'] = '';
if ($count_condition)
{
$element['prefix'] = ' or '; /* префикс */
}
else
{
$element['prefix'] = ' '; /* префикс */
}
++$count_condition;
$param['select'][] = $element;
}
}
if (!$count_condition)
{
$element['prefix'] = ' 1'; /* префикс */
}
else
{
$element['prefix'] = ''; // префикс
}
/* добавляем конечный элемент, содержащий HAVING */
$element['type'] = 0; /* 0 - основное св-во, 1 - дополнительное */
/* ОСТАВЛЯЕТЕ БЕЗ ИЗМЕНЕНИЙ, ЭТО НУЖНО ДЛЯ СОРТИРОВКИ */
$element['name'] = ''; /* Имя */
/* поля для основного св-ва, если тип = 1, то не указывается */
$element['if'] = ''; /* Условие */
/* Вот здесь передается ID доп. св-ва, по которому производится сортировка.
ID ВАШЕГО ПОЛЯ УКАЗЫВАЕТЕ ЗДЕСЬ */
$element['value'] = ''; // Значение поля (или параметра)
$having_count = '';
if ($count_condition != 0)
{
$having_count = 'GROUP BY shop_items_catalog_table.shop_items_catalog_item_id HAVING COUNT(shop_properties_items_table.shop_properties_items_id)= '.$count_condition.' ';
}
$element['sufix'] = ' ) ' . $having_count;
/* Добавляем в общий список условий */
$param['select'][] = $element;
}
if (!empty($property_xml))
{
$external_propertys['property_xml'] = $property_xml;
}
// Если передано имя тэга - фильтруем
if (isset($GLOBALS['shop_item_path']['tag_name']))
{
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByName($GLOBALS['shop_item_path']['tag_name']);
$param['tags'] = array($tag_row['tag_id']);
// При выводе тэгов вывод элементов ведется из всех групп
$param['current_group_id'] = false;
}
// Формируем html-код формы добавления объявления
ob_start();
// Идентификатор текущей группы
$current_group_id = $GLOBALS['shop_item_path']['group'];
$shop = & singleton('shop');
$captcha_key = $Captcha->GetCaptchaID();
?>
<div id="FormAddAdvertisement" style="display: <?=$div_style?>">
<form method="POST" action="./" enctype="multipart/form-data">
<table>
<tr>
<td>
Заголовок<br />
<input type="text" name="advertisement_title" size="70" value="<?=$advertisement_title;?>" />
</td>
</tr>
<tr>
<td>
Цена<br />
<input type="text" name="advertisement_price" size="70" value="<?=$advertisement_price;?>" />
</td>
</tr>
<tr>
<td>
Текст объявления<br />
<textarea name="advertisement_text" rows="5" cols="53"><?=$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="<?=$advertisement_fio;?>" />
</td>
</tr>
<tr>
<td>
Тел.<br />
<input type="text" name="advertisement_phone" size="70" value="<?=$advertisement_phone;?>" />
</td>
</tr>
<tr>
<td>
E-mail<br />
<input type="text" name="advertisement_email" size="70" value="<?=$advertisement_email;?>" />
</td>
</tr>
<?
// Получаем список дополнительных свойств группы магазина
$group_propertys_result = $shop->GetPropertiesOfGroup($current_group_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'] != 212
&& $item_property['shop_list_of_properties_id'] != 6 &&
($item_property['shop_list_of_properties_type'] != 2 || $item_property['shop_list_of_properties_type'] == 2 && class_exists('lists')))
{
?>
<tr>
<td>
<?
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<?=$item_property['shop_list_of_properties_id']?>" size="70" value="<?=to_str($_REQUEST['shop_item_property'.$item_property['shop_list_of_properties_id']])?>" />
<?
break;
}
case 1: // Файл
{
echo $item_property['shop_list_of_properties_name'];
?>
<br />
<input type="file" name="shop_item_property<?=$item_property['shop_list_of_properties_id']?>" size="59" />
<?
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<?=$item_property['shop_list_of_properties_id']?>">
<?
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="<?=$list_row['lists_items_id']?>" <?=$selected?>><?=$list_row['lists_items_value']?></option>
<?
}
?>
</select>
<?
}
}
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<?=$item_property['shop_list_of_properties_id']?>" <?=$checked?> />
<?
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<?=$item_property['shop_list_of_properties_id']?>" size="70" />
<?
break;
}
}
?>
</td>
</tr>
<?
}
}
}
}
?>
<tr>
<!--<td>Код подтверждения</td>-->
<td>
<div style="clear: both; padding-top: 3px;">
Код подтверждения
</div>
<div style="float: left">
<img style="border: 1px solid #000000" src="/captcha.php?get_captcha=<?=$captcha_key?>&height=20" title="Код подтверждения"/>
</div>
<div style="float: left; margin-left: 5px;">
<input type="text" name="captcha_keystring"/>
<input type="hidden" name="captcha_key" value="<?=$captcha_key?>" size="5"/>
</div>
</td>
</tr>
<tr>
<td><input type="submit" name="add_advertisement" value="Отправить" /></td>
</tr>
</table>
</form>
</div>
<?
$form_add_advertisement = ob_get_contents();
ob_get_clean();
$external_propertys['ФормаДобавленияОбъявления'] = $form_add_advertisement;
// Begin * Сортировка по типу объявления
$shop = & singleton('shop');
$param = array();
$param['current_group_id'] = $GLOBALS['shop_item_path']['group']; // Текущая группа
//$param['xml_show_group_type'] = 'none';
$param['items_on_page'] = 20;
// Ограничение по доп. свойству
$element['type'] = 1; // 0 - основное св-во, 1 - дополнительное
$element['property_id'] = 212; // идентификатор доп. св-ва
$element['prefix'] = ' AND '; // префикс
$element['if'] = '!='; // Условие
$element['value'] = "''"; //
$element['sufix'] = '';
$param['select'][] = $element;
// Сортируем как число
$param['items_field_order'] = ' shop_properties_items_table.shop_properties_items_value DESC, shop_items_catalog_date_time';
$param['items_order'] = 'DESC';
// End * Сортировка по типу объявления
$GLOBALS['shops']->ShowShop($current_shop_id, $xsl_catalog, $param, $external_propertys);
?>
<table class="shop_block_baner">
<tr><td>
<?
$Advertisement = new Advertisement();
$banner_group = 12;
$Advertisement->ShowBannerGroup($banner_group);
?>
</td></tr></table>
<?
}
else
{
/* Вывод конкретного элемент */
$GLOBALS['shops']->ShowItem($GLOBALS['shop_item_path']['item'], $xsl_item, $param, $external_propertys);
?>
<table class="shop_block_baner">
<tr><td>
<?
$Advertisement = new Advertisement();
$banner_group = 14;
$Advertisement->ShowBannerGroup($banner_group);
?>
</td></tr></table>
<?
}
}
?>
$Captcha = new Captcha();
$xsl_catalog = to_str($GLOBALS['LA']['xsl_catalog']);
$xsl_item = to_str($GLOBALS['LA']['xsl_item']);
$current_shop_id = to_int($GLOBALS['LA']['shop_id']);
$param = array();
$shop = & singleton('shop');
if ($GLOBALS['shop_item_path'] != false)
{
if (class_exists("SiteUsers"))
{
/* Получаем id текущего пользователя сайта */
$SiteUsers = & singleton('SiteUsers');
$param['user_id'] = $SiteUsers->GetCurrentSiteUser();
}
$external_propertys = array();
$advertisement_title = '';
$advertisement_price = '';
$advertisement_text = '';
$advertisement_fio = '';
$advertisement_phone = '';
$advertisement_email = '';
// Обработка добавления объявления
if (isset($_REQUEST['add_advertisement']))
{
if (isset($_REQUEST['captcha_key']) && isset($_REQUEST['captcha_keystring']) &&
$Captcha->ValidCaptcha($_REQUEST['captcha_key'],$_REQUEST['captcha_keystring']))
{
$external_propertys['message'] = 'Спасибо, объявление добавлено!';
$div_style = 'none';
$param = array();
$param['shops_id'] = $current_shop_id;
$param['groups_id'] = $GLOBALS['shop_item_path']['group'];
$param['name'] = to_str($_POST['advertisement_title']);
$param['description'] = '';
$param['shop_items_catalog_date_time'] = date('Y-m-d H:i:s');
$param['text'] = to_str($_POST['advertisement_text']);
if (class_exists('typograph'))
{
$typograph = new typograph();
$param['text'] = $typograph->ProcessTypographic($param['text'], true);
}
$param['currency_id'] = 1;
$param['price'] = to_float($_POST['advertisement_price']);
//$param['is_active'] = 0; //премодерация
$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;
$param['path_source_big_image'] = to_str($_FILES['advertisement_file']['tmp_name']);
//$param['path_source_small_image'] = $param['path_source_big_image'];
$param['original_file_name_big_image'] = to_str($_FILES['advertisement_file']['name']);
//$param['path_target_big_image'] = $item_big_image;
//$param['path_target_small_image'] = $item_small_image;
$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'] = 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'] = 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'] = 6;
$param['shop_properties_items_value'] = to_str($_POST['advertisement_email']);
$shop->InsertPropertiesItem($param);
// Получаем список дополнительных свойств раздела объявлений
$group_propertys_result = $shop->GetPropertiesOfGroup($GLOBALS['shop_item_path']['group']);
$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 = 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;
$kernel = & singleton('kernel');
$ext = $kernel->GetExtension($_FILES['shop_item_property' . $group_propertys_result[$i]]['name']);
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
{
$property_value = '';
$shop_properties_items_file = '';
}
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 = '';
}
}
$param = array();
if($group_propertys_result[$i] == 212)
{
$property_value = 0;
}
$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);
}
}
}
}
}
else // Ввели неправильный код подтверждения
{
$external_propertys['message'] = 'Вы ввели неправильный код подтверждения!';
$div_style = 'block';
$advertisement_title = to_str($_REQUEST['advertisement_title']);
$advertisement_price = to_str($_REQUEST['advertisement_price']);
$advertisement_text = to_str($_REQUEST['advertisement_text']);
$advertisement_fio = to_str($_REQUEST['advertisement_fio']);
$advertisement_phone = to_str($_REQUEST['advertisement_phone']);
$advertisement_email = to_str($_REQUEST['advertisement_email']);
}
}
else
{
$div_style = 'none';
}
/* Вывод списка */
if (!$GLOBALS['shop_item_path']['item'])
{
$param['current_group_id'] = $GLOBALS['shop_item_path']['group']; // корневая группа
/* Определяем номер элемента, с которого начинается показ в текущей группе */
$page = end($GLOBALS['URL_ARRAY']);
$page = to_str($page);
$shop_row = $GLOBALS['shops']->GetShop($current_shop_id);
if ($shop_row)
{
$items_on_page = $shop_row['shop_items_on_page'];
}
else
{
$items_on_page = 10;
}
/*
Порядок сортировки ('Asc' - по возрастанию, 'Desc' - по убыванию, 'Rand' - произвольный порядок)
$param['items_order']='Asc';
Поле, по которому сортируем (наименование элемента)
$param['items_field_order']='shop_items_catalog_name';
*/
/* Ограничиваем по производителю */
if (to_int($_GET['producer_id']) > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_producers_list_id';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '='; // Условие
$element['value'] = to_int($_GET['producer_id']);
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['producer_id'] = to_int($_GET['producer_id']);
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
/* Ограничиваем по продавцу */
if (to_int($_GET['saller_id']) > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_sallers_id';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '='; // Условие
$element['value'] = to_int($_GET['saller_id']);
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['saller_id'] = to_int($_GET['saller_id']);
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
$price_from = str_replace(',', '.', to_float($_GET['price_from']));
/* Ограничиваем по цене ОТ */
if ($price_from > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_items_catalog_price';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '>'; // Условие
$element['value'] = $price_from;
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['price_from'] = $price_from;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
$price_to = str_replace(',', '.', to_float($_GET['price_to']));
/* Ограничиваем по цене ДО */
if ($price_to > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_items_catalog_price';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '<'; // Условие
$element['value'] = $price_to;
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['price_to'] = $price_to;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
/* Число элементов на странице */
$on_page = to_int($_GET['on_page']);
if ($on_page > 0 && $on_page < 150)
{
$param['items_on_page'] = $on_page;
$external_propertys['on_page'] = $on_page;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
// Определяем номер страницы.
if ($on_page)
{
$items_on_page = $on_page;
}
if (ereg("^page-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 1)
{
/* Страница умножается на кол-во элементов, выводимых на страницу */
$items_begin = ($regs[1] - 1) * $items_on_page;
}
else
{
$items_begin = 0;
}
$param['items_begin'] = $items_begin;
/* Направление сортировки, 0 - по-возрастанию, 1 - по-убыванию */
$order_direction = to_int($_GET['order_direction']);
switch ($order_direction)
{
case 1: /* По-возрастанию */
{
$order_direction = 'ASC';
break;
}
case 2: /* По-убыванию */
{
$order_direction = 'DESC';
break;
}
default: /* По-умолчанию */
{
$order_direction = 'ASC';
break;
}
}
/* Поле сортировки */
$sort_field = to_int($_GET['sort_by_field']);
switch ($sort_field)
{
case 1: /* По имени */
{
$param['items_field_order'] = 'shop_items_catalog_name';
$param['items_order'] = $order_direction;
$external_propertys['sort_by_field'] = $sort_field;
$external_propertys['order_direction'] = $order_direction;
break;
}
case 2: /* По цене */
{
$param['items_field_order'] = 'shop_items_catalog_price';
$param['items_order'] = $order_direction;
$external_propertys['sort_by_field'] = $sort_field;
$external_propertys['order_direction'] = $order_direction;
break;
}
}
/* Обработка дополнительных свойств.
Получаем список свойств, разрешенных для отображения в данной группе и в фильтре */
$resource_properties = $shop->GetPropertiesOfGroupForXml($current_shop_id, $param['current_group_id']);
if ($resource_properties)
{
$element['type'] = 0; /* 0 - основное св-во, 1 - дополнительное */
/* Префикс, если нужен. */
$element['prefix'] = ' and ('; // префикс
/* ОСТАВЛЯЕТЕ БЕЗ ИЗМЕНЕНИЙ, ЭТО НУЖНО ДЛЯ СОРТИРОВКИ */
$element['name'] = ''; // Имя
/* поля для основного св-ва, если тип = 1, то не указывается */
$element['if'] = ''; // Условие
/* Вот здесь передается ID доп. св-ва, по которому производится сортировка.
ID ВАШЕГО ПОЛЯ УКАЗЫВАЕТЕ ЗДЕСЬ */
$element['value'] = ''; /* Значение поля (или параметра) */
$element['sufix']=' ';
/* Добавляем в общий список условий */
$param['select'][] = $element;
$count_condition = 0;
$property_xml = '';
$count_properties = mysql_num_rows($resource_properties);
for ($i = 0; $i < $count_properties; $i++)
{
$row = mysql_fetch_assoc($resource_properties);
$element['value'] = 0;
foreach ($_GET as $key => $value)
{
if (preg_match("/property_id_{$row['shop_list_of_properties_id']}_item_id_(\d*)/", $key, $matches))
{
$get_param = 'property_id_'.$row['shop_list_of_properties_id'].'_item_id_'.$matches[1];
if (isset($_GET[$get_param]) > 0 && to_int($matches[1]) > 0)
{
$element['value'] = to_int($matches[1]);
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id']).'_item_id_'.$element['value']] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'_item_id_'.$element['value'].'='.$element['value'];
}
}
}
/* Выбираем режим отображения */
$get_param = 'property_id_'.$row['shop_list_of_properties_id'];
if (isset($_GET[$get_param]))
{
if ($row['shop_list_of_properties_type'] == 0 || $row['shop_list_of_properties_show_kind'] == 1)
{
if (to_str($_GET[$get_param]) ==! "")
{
$element['value'] = quote_smart(to_str($_GET[$get_param]));
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
}
// Флажок
elseif($row['shop_list_of_properties_type'] == 7)
{
$element['value'] = 1;
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
else
{
if (to_int($_GET[$get_param]) > 0)
{
$element['value'] = to_int($_GET[$get_param]);
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
}
}
if ($element['value'])
{
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
$element['property_id'] = to_int($row['shop_list_of_properties_id']);
$element['type'] = 1; /* 0 - основное св-во, 1 - дополнительное */
//$element['prefix'] = 'AND'; /* префикс */
$element['if'] = '='; /* Условие */
$element['sufix'] = '';
if ($count_condition)
{
$element['prefix'] = ' or '; /* префикс */
}
else
{
$element['prefix'] = ' '; /* префикс */
}
++$count_condition;
$param['select'][] = $element;
}
}
if (!$count_condition)
{
$element['prefix'] = ' 1'; /* префикс */
}
else
{
$element['prefix'] = ''; // префикс
}
/* добавляем конечный элемент, содержащий HAVING */
$element['type'] = 0; /* 0 - основное св-во, 1 - дополнительное */
/* ОСТАВЛЯЕТЕ БЕЗ ИЗМЕНЕНИЙ, ЭТО НУЖНО ДЛЯ СОРТИРОВКИ */
$element['name'] = ''; /* Имя */
/* поля для основного св-ва, если тип = 1, то не указывается */
$element['if'] = ''; /* Условие */
/* Вот здесь передается ID доп. св-ва, по которому производится сортировка.
ID ВАШЕГО ПОЛЯ УКАЗЫВАЕТЕ ЗДЕСЬ */
$element['value'] = ''; // Значение поля (или параметра)
$having_count = '';
if ($count_condition != 0)
{
$having_count = 'GROUP BY shop_items_catalog_table.shop_items_catalog_item_id HAVING COUNT(shop_properties_items_table.shop_properties_items_id)= '.$count_condition.' ';
}
$element['sufix'] = ' ) ' . $having_count;
/* Добавляем в общий список условий */
$param['select'][] = $element;
}
if (!empty($property_xml))
{
$external_propertys['property_xml'] = $property_xml;
}
// Если передано имя тэга - фильтруем
if (isset($GLOBALS['shop_item_path']['tag_name']))
{
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByName($GLOBALS['shop_item_path']['tag_name']);
$param['tags'] = array($tag_row['tag_id']);
// При выводе тэгов вывод элементов ведется из всех групп
$param['current_group_id'] = false;
}
// Формируем html-код формы добавления объявления
ob_start();
// Идентификатор текущей группы
$current_group_id = $GLOBALS['shop_item_path']['group'];
$shop = & singleton('shop');
$captcha_key = $Captcha->GetCaptchaID();
?>
<div id="FormAddAdvertisement" style="display: <?=$div_style?>">
<form method="POST" action="./" enctype="multipart/form-data">
<table>
<tr>
<td>
Заголовок<br />
<input type="text" name="advertisement_title" size="70" value="<?=$advertisement_title;?>" />
</td>
</tr>
<tr>
<td>
Цена<br />
<input type="text" name="advertisement_price" size="70" value="<?=$advertisement_price;?>" />
</td>
</tr>
<tr>
<td>
Текст объявления<br />
<textarea name="advertisement_text" rows="5" cols="53"><?=$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="<?=$advertisement_fio;?>" />
</td>
</tr>
<tr>
<td>
Тел.<br />
<input type="text" name="advertisement_phone" size="70" value="<?=$advertisement_phone;?>" />
</td>
</tr>
<tr>
<td>
E-mail<br />
<input type="text" name="advertisement_email" size="70" value="<?=$advertisement_email;?>" />
</td>
</tr>
<?
// Получаем список дополнительных свойств группы магазина
$group_propertys_result = $shop->GetPropertiesOfGroup($current_group_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'] != 212
&& $item_property['shop_list_of_properties_id'] != 6 &&
($item_property['shop_list_of_properties_type'] != 2 || $item_property['shop_list_of_properties_type'] == 2 && class_exists('lists')))
{
?>
<tr>
<td>
<?
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<?=$item_property['shop_list_of_properties_id']?>" size="70" value="<?=to_str($_REQUEST['shop_item_property'.$item_property['shop_list_of_properties_id']])?>" />
<?
break;
}
case 1: // Файл
{
echo $item_property['shop_list_of_properties_name'];
?>
<br />
<input type="file" name="shop_item_property<?=$item_property['shop_list_of_properties_id']?>" size="59" />
<?
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<?=$item_property['shop_list_of_properties_id']?>">
<?
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="<?=$list_row['lists_items_id']?>" <?=$selected?>><?=$list_row['lists_items_value']?></option>
<?
}
?>
</select>
<?
}
}
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<?=$item_property['shop_list_of_properties_id']?>" <?=$checked?> />
<?
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<?=$item_property['shop_list_of_properties_id']?>" size="70" />
<?
break;
}
}
?>
</td>
</tr>
<?
}
}
}
}
?>
<tr>
<!--<td>Код подтверждения</td>-->
<td>
<div style="clear: both; padding-top: 3px;">
Код подтверждения
</div>
<div style="float: left">
<img style="border: 1px solid #000000" src="/captcha.php?get_captcha=<?=$captcha_key?>&height=20" title="Код подтверждения"/>
</div>
<div style="float: left; margin-left: 5px;">
<input type="text" name="captcha_keystring"/>
<input type="hidden" name="captcha_key" value="<?=$captcha_key?>" size="5"/>
</div>
</td>
</tr>
<tr>
<td><input type="submit" name="add_advertisement" value="Отправить" /></td>
</tr>
</table>
</form>
</div>
<?
$form_add_advertisement = ob_get_contents();
ob_get_clean();
$external_propertys['ФормаДобавленияОбъявления'] = $form_add_advertisement;
// Begin * Сортировка по типу объявления
$shop = & singleton('shop');
$param = array();
$param['current_group_id'] = $GLOBALS['shop_item_path']['group']; // Текущая группа
//$param['xml_show_group_type'] = 'none';
$param['items_on_page'] = 20;
// Ограничение по доп. свойству
$element['type'] = 1; // 0 - основное св-во, 1 - дополнительное
$element['property_id'] = 212; // идентификатор доп. св-ва
$element['prefix'] = ' AND '; // префикс
$element['if'] = '!='; // Условие
$element['value'] = "''"; //
$element['sufix'] = '';
$param['select'][] = $element;
// Сортируем как число
$param['items_field_order'] = ' shop_properties_items_table.shop_properties_items_value DESC, shop_items_catalog_date_time';
$param['items_order'] = 'DESC';
// End * Сортировка по типу объявления
$GLOBALS['shops']->ShowShop($current_shop_id, $xsl_catalog, $param, $external_propertys);
?>
<table class="shop_block_baner">
<tr><td>
<?
$Advertisement = new Advertisement();
$banner_group = 12;
$Advertisement->ShowBannerGroup($banner_group);
?>
</td></tr></table>
<?
}
else
{
/* Вывод конкретного элемент */
$GLOBALS['shops']->ShowItem($GLOBALS['shop_item_path']['item'], $xsl_item, $param, $external_propertys);
?>
<table class="shop_block_baner">
<tr><td>
<?
$Advertisement = new Advertisement();
$banner_group = 14;
$Advertisement->ShowBannerGroup($banner_group);
?>
</td></tr></table>
<?
}
}
?>
Т.к. доп. свойство с идентификатором 212 не отображается в форме и его значение не содержится в массиве $_POST, то предложенный мною код выполняться не будет. Поэтому используйте этот код:
<?
$Captcha = new Captcha();
$xsl_catalog = to_str($GLOBALS['LA']['xsl_catalog']);
$xsl_item = to_str($GLOBALS['LA']['xsl_item']);
$current_shop_id = to_int($GLOBALS['LA']['shop_id']);
$param = array();
$shop = & singleton('shop');
if ($GLOBALS['shop_item_path'] != false)
{
if (class_exists("SiteUsers")
{
/* Получаем id текущего пользователя сайта */
$SiteUsers = & singleton('SiteUsers');
$param['user_id'] = $SiteUsers->GetCurrentSiteUser();
}
$external_propertys = array();
$advertisement_title = '';
$advertisement_price = '';
$advertisement_text = '';
$advertisement_fio = '';
$advertisement_phone = '';
$advertisement_email = '';
// Обработка добавления объявления
if (isset($_REQUEST['add_advertisement']))
{
if (isset($_REQUEST['captcha_key']) && isset($_REQUEST['captcha_keystring']) &&
$Captcha->ValidCaptcha($_REQUEST['captcha_key'],$_REQUEST['captcha_keystring']))
{
$external_propertys['message'] = 'Спасибо, объявление добавлено!';
$div_style = 'none';
$param = array();
$param['shops_id'] = $current_shop_id;
$param['groups_id'] = $GLOBALS['shop_item_path']['group'];
$param['name'] = to_str($_POST['advertisement_title']);
$param['description'] = '';
$param['shop_items_catalog_date_time'] = date('Y-m-d H:i:s');
$param['text'] = to_str($_POST['advertisement_text']);
if (class_exists('typograph'))
{
$typograph = new typograph();
$param['text'] = $typograph->ProcessTypographic($param['text'], true);
}
$param['currency_id'] = 1;
$param['price'] = to_float($_POST['advertisement_price']);
//$param['is_active'] = 0; //премодерация
$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;
$param['path_source_big_image'] = to_str($_FILES['advertisement_file']['tmp_name']);
//$param['path_source_small_image'] = $param['path_source_big_image'];
$param['original_file_name_big_image'] = to_str($_FILES['advertisement_file']['name']);
//$param['path_target_big_image'] = $item_big_image;
//$param['path_target_small_image'] = $item_small_image;
$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'] = 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'] = 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'] = 6;
$param['shop_properties_items_value'] = to_str($_POST['advertisement_email']);
$shop->InsertPropertiesItem($param);
// Получаем список дополнительных свойств раздела объявлений
$group_propertys_result = $shop->GetPropertiesOfGroup($GLOBALS['shop_item_path']['group']);
$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 = 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;
$kernel = & singleton('kernel');
$ext = $kernel->GetExtension($_FILES['shop_item_property' . $group_propertys_result[$i]]['name']);
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
{
$property_value = '';
$shop_properties_items_file = '';
}
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 = '';
}
}
$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);
}
if($group_propertys_result[$i] == 212)
{
$property_value = 0;
}
$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'] = "";
$param['shop_properties_items_file'] = "";
$param['shop_properties_items_file_small'] = "";
$shop->InsertPropertiesItem($param);
}
}
}
}
else // Ввели неправильный код подтверждения
{
$external_propertys['message'] = 'Вы ввели неправильный код подтверждения!';
$div_style = 'block';
$advertisement_title = to_str($_REQUEST['advertisement_title']);
$advertisement_price = to_str($_REQUEST['advertisement_price']);
$advertisement_text = to_str($_REQUEST['advertisement_text']);
$advertisement_fio = to_str($_REQUEST['advertisement_fio']);
$advertisement_phone = to_str($_REQUEST['advertisement_phone']);
$advertisement_email = to_str($_REQUEST['advertisement_email']);
}
}
else
{
$div_style = 'none';
}
/* Вывод списка */
if (!$GLOBALS['shop_item_path']['item'])
{
$param['current_group_id'] = $GLOBALS['shop_item_path']['group']; // корневая группа
/* Определяем номер элемента, с которого начинается показ в текущей группе */
$page = end($GLOBALS['URL_ARRAY']);
$page = to_str($page);
$shop_row = $GLOBALS['shops']->GetShop($current_shop_id);
if ($shop_row)
{
$items_on_page = $shop_row['shop_items_on_page'];
}
else
{
$items_on_page = 10;
}
/*
Порядок сортировки ('Asc' - по возрастанию, 'Desc' - по убыванию, 'Rand' - произвольный порядок)
$param['items_order']='Asc';
Поле, по которому сортируем (наименование элемента)
$param['items_field_order']='shop_items_catalog_name';
*/
/* Ограничиваем по производителю */
if (to_int($_GET['producer_id']) > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_producers_list_id';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '='; // Условие
$element['value'] = to_int($_GET['producer_id']);
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['producer_id'] = to_int($_GET['producer_id']);
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
/* Ограничиваем по продавцу */
if (to_int($_GET['saller_id']) > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_sallers_id';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '='; // Условие
$element['value'] = to_int($_GET['saller_id']);
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['saller_id'] = to_int($_GET['saller_id']);
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
$price_from = str_replace(',', '.', to_float($_GET['price_from']));
/* Ограничиваем по цене ОТ */
if ($price_from > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_items_catalog_price';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '>'; // Условие
$element['value'] = $price_from;
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['price_from'] = $price_from;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
$price_to = str_replace(',', '.', to_float($_GET['price_to']));
/* Ограничиваем по цене ДО */
if ($price_to > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_items_catalog_price';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '<'; // Условие
$element['value'] = $price_to;
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['price_to'] = $price_to;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
/* Число элементов на странице */
$on_page = to_int($_GET['on_page']);
if ($on_page > 0 && $on_page < 150)
{
$param['items_on_page'] = $on_page;
$external_propertys['on_page'] = $on_page;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
// Определяем номер страницы.
if ($on_page)
{
$items_on_page = $on_page;
}
if (ereg("^page-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 1)
{
/* Страница умножается на кол-во элементов, выводимых на страницу */
$items_begin = ($regs[1] - 1) * $items_on_page;
}
else
{
$items_begin = 0;
}
$param['items_begin'] = $items_begin;
/* Направление сортировки, 0 - по-возрастанию, 1 - по-убыванию */
$order_direction = to_int($_GET['order_direction']);
switch ($order_direction)
{
case 1: /* По-возрастанию */
{
$order_direction = 'ASC';
break;
}
case 2: /* По-убыванию */
{
$order_direction = 'DESC';
break;
}
default: /* По-умолчанию */
{
$order_direction = 'ASC';
break;
}
}
/* Поле сортировки */
$sort_field = to_int($_GET['sort_by_field']);
switch ($sort_field)
{
case 1: /* По имени */
{
$param['items_field_order'] = 'shop_items_catalog_name';
$param['items_order'] = $order_direction;
$external_propertys['sort_by_field'] = $sort_field;
$external_propertys['order_direction'] = $order_direction;
break;
}
case 2: /* По цене */
{
$param['items_field_order'] = 'shop_items_catalog_price';
$param['items_order'] = $order_direction;
$external_propertys['sort_by_field'] = $sort_field;
$external_propertys['order_direction'] = $order_direction;
break;
}
}
/* Обработка дополнительных свойств.
Получаем список свойств, разрешенных для отображения в данной группе и в фильтре */
$resource_properties = $shop->GetPropertiesOfGroupForXml($current_shop_id, $param['current_group_id']);
if ($resource_properties)
{
$element['type'] = 0; /* 0 - основное св-во, 1 - дополнительное */
/* Префикс, если нужен. */
$element['prefix'] = ' and ('; // префикс
/* ОСТАВЛЯЕТЕ БЕЗ ИЗМЕНЕНИЙ, ЭТО НУЖНО ДЛЯ СОРТИРОВКИ */
$element['name'] = ''; // Имя
/* поля для основного св-ва, если тип = 1, то не указывается */
$element['if'] = ''; // Условие
/* Вот здесь передается ID доп. св-ва, по которому производится сортировка.
ID ВАШЕГО ПОЛЯ УКАЗЫВАЕТЕ ЗДЕСЬ */
$element['value'] = ''; /* Значение поля (или параметра) */
$element['sufix']=' ';
/* Добавляем в общий список условий */
$param['select'][] = $element;
$count_condition = 0;
$property_xml = '';
$count_properties = mysql_num_rows($resource_properties);
for ($i = 0; $i < $count_properties; $i++)
{
$row = mysql_fetch_assoc($resource_properties);
$element['value'] = 0;
foreach ($_GET as $key => $value)
{
if (preg_match("/property_id_{$row['shop_list_of_properties_id']}_item_id_(\d*)/", $key, $matches))
{
$get_param = 'property_id_'.$row['shop_list_of_properties_id'].'_item_id_'.$matches[1];
if (isset($_GET[$get_param]) > 0 && to_int($matches[1]) > 0)
{
$element['value'] = to_int($matches[1]);
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id']).'_item_id_'.$element['value']] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'_item_id_'.$element['value'].'='.$element['value'];
}
}
}
/* Выбираем режим отображения */
$get_param = 'property_id_'.$row['shop_list_of_properties_id'];
if (isset($_GET[$get_param]))
{
if ($row['shop_list_of_properties_type'] == 0 || $row['shop_list_of_properties_show_kind'] == 1)
{
if (to_str($_GET[$get_param]) ==! "")
{
$element['value'] = quote_smart(to_str($_GET[$get_param]));
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
}
// Флажок
elseif($row['shop_list_of_properties_type'] == 7)
{
$element['value'] = 1;
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
else
{
if (to_int($_GET[$get_param]) > 0)
{
$element['value'] = to_int($_GET[$get_param]);
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
}
}
if ($element['value'])
{
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
$element['property_id'] = to_int($row['shop_list_of_properties_id']);
$element['type'] = 1; /* 0 - основное св-во, 1 - дополнительное */
//$element['prefix'] = 'AND'; /* префикс */
$element['if'] = '='; /* Условие */
$element['sufix'] = '';
if ($count_condition)
{
$element['prefix'] = ' or '; /* префикс */
}
else
{
$element['prefix'] = ' '; /* префикс */
}
++$count_condition;
$param['select'][] = $element;
}
}
if (!$count_condition)
{
$element['prefix'] = ' 1'; /* префикс */
}
else
{
$element['prefix'] = ''; // префикс
}
/* добавляем конечный элемент, содержащий HAVING */
$element['type'] = 0; /* 0 - основное св-во, 1 - дополнительное */
/* ОСТАВЛЯЕТЕ БЕЗ ИЗМЕНЕНИЙ, ЭТО НУЖНО ДЛЯ СОРТИРОВКИ */
$element['name'] = ''; /* Имя */
/* поля для основного св-ва, если тип = 1, то не указывается */
$element['if'] = ''; /* Условие */
/* Вот здесь передается ID доп. св-ва, по которому производится сортировка.
ID ВАШЕГО ПОЛЯ УКАЗЫВАЕТЕ ЗДЕСЬ */
$element['value'] = ''; // Значение поля (или параметра)
$having_count = '';
if ($count_condition != 0)
{
$having_count = 'GROUP BY shop_items_catalog_table.shop_items_catalog_item_id HAVING COUNT(shop_properties_items_table.shop_properties_items_id)= '.$count_condition.' ';
}
$element['sufix'] = ' ) ' . $having_count;
/* Добавляем в общий список условий */
$param['select'][] = $element;
}
if (!empty($property_xml))
{
$external_propertys['property_xml'] = $property_xml;
}
// Если передано имя тэга - фильтруем
if (isset($GLOBALS['shop_item_path']['tag_name']))
{
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByName($GLOBALS['shop_item_path']['tag_name']);
$param['tags'] = array($tag_row['tag_id']);
// При выводе тэгов вывод элементов ведется из всех групп
$param['current_group_id'] = false;
}
// Формируем html-код формы добавления объявления
ob_start();
// Идентификатор текущей группы
$current_group_id = $GLOBALS['shop_item_path']['group'];
$shop = & singleton('shop');
$captcha_key = $Captcha->GetCaptchaID();
?>
<div id="FormAddAdvertisement" style="display: <?=$div_style?>">
<form method="POST" action="./" enctype="multipart/form-data">
<table>
<tr>
<td>
Заголовок<br />
<input type="text" name="advertisement_title" size="70" value="<?=$advertisement_title;?>" />
</td>
</tr>
<tr>
<td>
Цена<br />
<input type="text" name="advertisement_price" size="70" value="<?=$advertisement_price;?>" />
</td>
</tr>
<tr>
<td>
Текст объявления<br />
<textarea name="advertisement_text" rows="5" cols="53"><?=$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="<?=$advertisement_fio;?>" />
</td>
</tr>
<tr>
<td>
Тел.<br />
<input type="text" name="advertisement_phone" size="70" value="<?=$advertisement_phone;?>" />
</td>
</tr>
<tr>
<td>
E-mail<br />
<input type="text" name="advertisement_email" size="70" value="<?=$advertisement_email;?>" />
</td>
</tr>
<?
// Получаем список дополнительных свойств группы магазина
$group_propertys_result = $shop->GetPropertiesOfGroup($current_group_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'] != 212
&& $item_property['shop_list_of_properties_id'] != 6 &&
($item_property['shop_list_of_properties_type'] != 2 || $item_property['shop_list_of_properties_type'] == 2 && class_exists('lists')))
{
?>
<tr>
<td>
<?
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<?=$item_property['shop_list_of_properties_id']?>" size="70" value="<?=to_str($_REQUEST['shop_item_property'.$item_property['shop_list_of_properties_id']])?>" />
<?
break;
}
case 1: // Файл
{
echo $item_property['shop_list_of_properties_name'];
?>
<br />
<input type="file" name="shop_item_property<?=$item_property['shop_list_of_properties_id']?>" size="59" />
<?
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<?=$item_property['shop_list_of_properties_id']?>">
<?
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="<?=$list_row['lists_items_id']?>" <?=$selected?>><?=$list_row['lists_items_value']?></option>
<?
}
?>
</select>
<?
}
}
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<?=$item_property['shop_list_of_properties_id']?>" <?=$checked?> />
<?
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<?=$item_property['shop_list_of_properties_id']?>" size="70" />
<?
break;
}
}
?>
</td>
</tr>
<?
}
}
}
}
?>
<tr>
<!--<td>Код подтверждения</td>-->
<td>
<div style="clear: both; padding-top: 3px;">
Код подтверждения
</div>
<div style="float: left">
<img style="border: 1px solid #000000" src="/captcha.php?get_captcha=<?=$captcha_key?>&height=20" title="Код подтверждения"/>
</div>
<div style="float: left; margin-left: 5px;">
<input type="text" name="captcha_keystring"/>
<input type="hidden" name="captcha_key" value="<?=$captcha_key?>" size="5"/>
</div>
</td>
</tr>
<tr>
<td><input type="submit" name="add_advertisement" value="Отправить" /></td>
</tr>
</table>
</form>
</div>
<?
$form_add_advertisement = ob_get_contents();
ob_get_clean();
$external_propertys['ФормаДобавленияОбъявления'] = $form_add_advertisement;
// Begin * Сортировка по типу объявления
$shop = & singleton('shop');
$param = array();
$param['current_group_id'] = $GLOBALS['shop_item_path']['group']; // Текущая группа
//$param['xml_show_group_type'] = 'none';
$param['items_on_page'] = 20;
// Ограничение по доп. свойству
$element['type'] = 1; // 0 - основное св-во, 1 - дополнительное
$element['property_id'] = 212; // идентификатор доп. св-ва
$element['prefix'] = ' AND '; // префикс
$element['if'] = '!='; // Условие
$element['value'] = "''"; //
$element['sufix'] = '';
$param['select'][] = $element;
// Сортируем как число
$param['items_field_order'] = ' shop_properties_items_table.shop_properties_items_value DESC, shop_items_catalog_date_time';
$param['items_order'] = 'DESC';
// End * Сортировка по типу объявления
$GLOBALS['shops']->ShowShop($current_shop_id, $xsl_catalog, $param, $external_propertys);
?>
<table class="shop_block_baner">
<tr><td>
<?
$Advertisement = new Advertisement();
$banner_group = 12;
$Advertisement->ShowBannerGroup($banner_group);
?>
</td></tr></table>
<?
}
else
{
/* Вывод конкретного элемент */
$GLOBALS['shops']->ShowItem($GLOBALS['shop_item_path']['item'], $xsl_item, $param, $external_propertys);
?>
<table class="shop_block_baner">
<tr><td>
<?
$Advertisement = new Advertisement();
$banner_group = 14;
$Advertisement->ShowBannerGroup($banner_group);
?>
</td></tr></table>
<?
}
}
?>
$Captcha = new Captcha();
$xsl_catalog = to_str($GLOBALS['LA']['xsl_catalog']);
$xsl_item = to_str($GLOBALS['LA']['xsl_item']);
$current_shop_id = to_int($GLOBALS['LA']['shop_id']);
$param = array();
$shop = & singleton('shop');
if ($GLOBALS['shop_item_path'] != false)
{
if (class_exists("SiteUsers")
{
/* Получаем id текущего пользователя сайта */
$SiteUsers = & singleton('SiteUsers');
$param['user_id'] = $SiteUsers->GetCurrentSiteUser();
}
$external_propertys = array();
$advertisement_title = '';
$advertisement_price = '';
$advertisement_text = '';
$advertisement_fio = '';
$advertisement_phone = '';
$advertisement_email = '';
// Обработка добавления объявления
if (isset($_REQUEST['add_advertisement']))
{
if (isset($_REQUEST['captcha_key']) && isset($_REQUEST['captcha_keystring']) &&
$Captcha->ValidCaptcha($_REQUEST['captcha_key'],$_REQUEST['captcha_keystring']))
{
$external_propertys['message'] = 'Спасибо, объявление добавлено!';
$div_style = 'none';
$param = array();
$param['shops_id'] = $current_shop_id;
$param['groups_id'] = $GLOBALS['shop_item_path']['group'];
$param['name'] = to_str($_POST['advertisement_title']);
$param['description'] = '';
$param['shop_items_catalog_date_time'] = date('Y-m-d H:i:s');
$param['text'] = to_str($_POST['advertisement_text']);
if (class_exists('typograph'))
{
$typograph = new typograph();
$param['text'] = $typograph->ProcessTypographic($param['text'], true);
}
$param['currency_id'] = 1;
$param['price'] = to_float($_POST['advertisement_price']);
//$param['is_active'] = 0; //премодерация
$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;
$param['path_source_big_image'] = to_str($_FILES['advertisement_file']['tmp_name']);
//$param['path_source_small_image'] = $param['path_source_big_image'];
$param['original_file_name_big_image'] = to_str($_FILES['advertisement_file']['name']);
//$param['path_target_big_image'] = $item_big_image;
//$param['path_target_small_image'] = $item_small_image;
$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'] = 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'] = 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'] = 6;
$param['shop_properties_items_value'] = to_str($_POST['advertisement_email']);
$shop->InsertPropertiesItem($param);
// Получаем список дополнительных свойств раздела объявлений
$group_propertys_result = $shop->GetPropertiesOfGroup($GLOBALS['shop_item_path']['group']);
$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 = 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;
$kernel = & singleton('kernel');
$ext = $kernel->GetExtension($_FILES['shop_item_property' . $group_propertys_result[$i]]['name']);
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
{
$property_value = '';
$shop_properties_items_file = '';
}
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 = '';
}
}
$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);
}
if($group_propertys_result[$i] == 212)
{
$property_value = 0;
}
$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'] = "";
$param['shop_properties_items_file'] = "";
$param['shop_properties_items_file_small'] = "";
$shop->InsertPropertiesItem($param);
}
}
}
}
else // Ввели неправильный код подтверждения
{
$external_propertys['message'] = 'Вы ввели неправильный код подтверждения!';
$div_style = 'block';
$advertisement_title = to_str($_REQUEST['advertisement_title']);
$advertisement_price = to_str($_REQUEST['advertisement_price']);
$advertisement_text = to_str($_REQUEST['advertisement_text']);
$advertisement_fio = to_str($_REQUEST['advertisement_fio']);
$advertisement_phone = to_str($_REQUEST['advertisement_phone']);
$advertisement_email = to_str($_REQUEST['advertisement_email']);
}
}
else
{
$div_style = 'none';
}
/* Вывод списка */
if (!$GLOBALS['shop_item_path']['item'])
{
$param['current_group_id'] = $GLOBALS['shop_item_path']['group']; // корневая группа
/* Определяем номер элемента, с которого начинается показ в текущей группе */
$page = end($GLOBALS['URL_ARRAY']);
$page = to_str($page);
$shop_row = $GLOBALS['shops']->GetShop($current_shop_id);
if ($shop_row)
{
$items_on_page = $shop_row['shop_items_on_page'];
}
else
{
$items_on_page = 10;
}
/*
Порядок сортировки ('Asc' - по возрастанию, 'Desc' - по убыванию, 'Rand' - произвольный порядок)
$param['items_order']='Asc';
Поле, по которому сортируем (наименование элемента)
$param['items_field_order']='shop_items_catalog_name';
*/
/* Ограничиваем по производителю */
if (to_int($_GET['producer_id']) > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_producers_list_id';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '='; // Условие
$element['value'] = to_int($_GET['producer_id']);
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['producer_id'] = to_int($_GET['producer_id']);
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
/* Ограничиваем по продавцу */
if (to_int($_GET['saller_id']) > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_sallers_id';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '='; // Условие
$element['value'] = to_int($_GET['saller_id']);
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['saller_id'] = to_int($_GET['saller_id']);
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
$price_from = str_replace(',', '.', to_float($_GET['price_from']));
/* Ограничиваем по цене ОТ */
if ($price_from > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_items_catalog_price';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '>'; // Условие
$element['value'] = $price_from;
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['price_from'] = $price_from;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
$price_to = str_replace(',', '.', to_float($_GET['price_to']));
/* Ограничиваем по цене ДО */
if ($price_to > 0)
{
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['name'] = 'shop_items_catalog_price';
$element['prefix'] = 'AND'; // префикс
$element['if'] = '<'; // Условие
$element['value'] = $price_to;
$element['sufix'] = '';
$param['select'][] = $element;
$external_propertys['price_to'] = $price_to;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
/* Число элементов на странице */
$on_page = to_int($_GET['on_page']);
if ($on_page > 0 && $on_page < 150)
{
$param['items_on_page'] = $on_page;
$external_propertys['on_page'] = $on_page;
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
}
// Определяем номер страницы.
if ($on_page)
{
$items_on_page = $on_page;
}
if (ereg("^page-([0-9]*)$", $page, $regs) && to_int($regs[1]) > 1)
{
/* Страница умножается на кол-во элементов, выводимых на страницу */
$items_begin = ($regs[1] - 1) * $items_on_page;
}
else
{
$items_begin = 0;
}
$param['items_begin'] = $items_begin;
/* Направление сортировки, 0 - по-возрастанию, 1 - по-убыванию */
$order_direction = to_int($_GET['order_direction']);
switch ($order_direction)
{
case 1: /* По-возрастанию */
{
$order_direction = 'ASC';
break;
}
case 2: /* По-убыванию */
{
$order_direction = 'DESC';
break;
}
default: /* По-умолчанию */
{
$order_direction = 'ASC';
break;
}
}
/* Поле сортировки */
$sort_field = to_int($_GET['sort_by_field']);
switch ($sort_field)
{
case 1: /* По имени */
{
$param['items_field_order'] = 'shop_items_catalog_name';
$param['items_order'] = $order_direction;
$external_propertys['sort_by_field'] = $sort_field;
$external_propertys['order_direction'] = $order_direction;
break;
}
case 2: /* По цене */
{
$param['items_field_order'] = 'shop_items_catalog_price';
$param['items_order'] = $order_direction;
$external_propertys['sort_by_field'] = $sort_field;
$external_propertys['order_direction'] = $order_direction;
break;
}
}
/* Обработка дополнительных свойств.
Получаем список свойств, разрешенных для отображения в данной группе и в фильтре */
$resource_properties = $shop->GetPropertiesOfGroupForXml($current_shop_id, $param['current_group_id']);
if ($resource_properties)
{
$element['type'] = 0; /* 0 - основное св-во, 1 - дополнительное */
/* Префикс, если нужен. */
$element['prefix'] = ' and ('; // префикс
/* ОСТАВЛЯЕТЕ БЕЗ ИЗМЕНЕНИЙ, ЭТО НУЖНО ДЛЯ СОРТИРОВКИ */
$element['name'] = ''; // Имя
/* поля для основного св-ва, если тип = 1, то не указывается */
$element['if'] = ''; // Условие
/* Вот здесь передается ID доп. св-ва, по которому производится сортировка.
ID ВАШЕГО ПОЛЯ УКАЗЫВАЕТЕ ЗДЕСЬ */
$element['value'] = ''; /* Значение поля (или параметра) */
$element['sufix']=' ';
/* Добавляем в общий список условий */
$param['select'][] = $element;
$count_condition = 0;
$property_xml = '';
$count_properties = mysql_num_rows($resource_properties);
for ($i = 0; $i < $count_properties; $i++)
{
$row = mysql_fetch_assoc($resource_properties);
$element['value'] = 0;
foreach ($_GET as $key => $value)
{
if (preg_match("/property_id_{$row['shop_list_of_properties_id']}_item_id_(\d*)/", $key, $matches))
{
$get_param = 'property_id_'.$row['shop_list_of_properties_id'].'_item_id_'.$matches[1];
if (isset($_GET[$get_param]) > 0 && to_int($matches[1]) > 0)
{
$element['value'] = to_int($matches[1]);
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id']).'_item_id_'.$element['value']] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'_item_id_'.$element['value'].'='.$element['value'];
}
}
}
/* Выбираем режим отображения */
$get_param = 'property_id_'.$row['shop_list_of_properties_id'];
if (isset($_GET[$get_param]))
{
if ($row['shop_list_of_properties_type'] == 0 || $row['shop_list_of_properties_show_kind'] == 1)
{
if (to_str($_GET[$get_param]) ==! "")
{
$element['value'] = quote_smart(to_str($_GET[$get_param]));
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
}
// Флажок
elseif($row['shop_list_of_properties_type'] == 7)
{
$element['value'] = 1;
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
else
{
if (to_int($_GET[$get_param]) > 0)
{
$element['value'] = to_int($_GET[$get_param]);
$external_propertys['property_id_'.to_int($row['shop_list_of_properties_id'])] = $element['value'];
$property_xml .= '&property_id_'.to_int($row['shop_list_of_properties_id']).'='.$element['value'];
}
}
}
if ($element['value'])
{
/* Применять фильтр */
$external_propertys['apply_filter'] = true;
$element['property_id'] = to_int($row['shop_list_of_properties_id']);
$element['type'] = 1; /* 0 - основное св-во, 1 - дополнительное */
//$element['prefix'] = 'AND'; /* префикс */
$element['if'] = '='; /* Условие */
$element['sufix'] = '';
if ($count_condition)
{
$element['prefix'] = ' or '; /* префикс */
}
else
{
$element['prefix'] = ' '; /* префикс */
}
++$count_condition;
$param['select'][] = $element;
}
}
if (!$count_condition)
{
$element['prefix'] = ' 1'; /* префикс */
}
else
{
$element['prefix'] = ''; // префикс
}
/* добавляем конечный элемент, содержащий HAVING */
$element['type'] = 0; /* 0 - основное св-во, 1 - дополнительное */
/* ОСТАВЛЯЕТЕ БЕЗ ИЗМЕНЕНИЙ, ЭТО НУЖНО ДЛЯ СОРТИРОВКИ */
$element['name'] = ''; /* Имя */
/* поля для основного св-ва, если тип = 1, то не указывается */
$element['if'] = ''; /* Условие */
/* Вот здесь передается ID доп. св-ва, по которому производится сортировка.
ID ВАШЕГО ПОЛЯ УКАЗЫВАЕТЕ ЗДЕСЬ */
$element['value'] = ''; // Значение поля (или параметра)
$having_count = '';
if ($count_condition != 0)
{
$having_count = 'GROUP BY shop_items_catalog_table.shop_items_catalog_item_id HAVING COUNT(shop_properties_items_table.shop_properties_items_id)= '.$count_condition.' ';
}
$element['sufix'] = ' ) ' . $having_count;
/* Добавляем в общий список условий */
$param['select'][] = $element;
}
if (!empty($property_xml))
{
$external_propertys['property_xml'] = $property_xml;
}
// Если передано имя тэга - фильтруем
if (isset($GLOBALS['shop_item_path']['tag_name']))
{
$oTag = & singleton('Tag');
$tag_row = $oTag->GetTagByName($GLOBALS['shop_item_path']['tag_name']);
$param['tags'] = array($tag_row['tag_id']);
// При выводе тэгов вывод элементов ведется из всех групп
$param['current_group_id'] = false;
}
// Формируем html-код формы добавления объявления
ob_start();
// Идентификатор текущей группы
$current_group_id = $GLOBALS['shop_item_path']['group'];
$shop = & singleton('shop');
$captcha_key = $Captcha->GetCaptchaID();
?>
<div id="FormAddAdvertisement" style="display: <?=$div_style?>">
<form method="POST" action="./" enctype="multipart/form-data">
<table>
<tr>
<td>
Заголовок<br />
<input type="text" name="advertisement_title" size="70" value="<?=$advertisement_title;?>" />
</td>
</tr>
<tr>
<td>
Цена<br />
<input type="text" name="advertisement_price" size="70" value="<?=$advertisement_price;?>" />
</td>
</tr>
<tr>
<td>
Текст объявления<br />
<textarea name="advertisement_text" rows="5" cols="53"><?=$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="<?=$advertisement_fio;?>" />
</td>
</tr>
<tr>
<td>
Тел.<br />
<input type="text" name="advertisement_phone" size="70" value="<?=$advertisement_phone;?>" />
</td>
</tr>
<tr>
<td>
E-mail<br />
<input type="text" name="advertisement_email" size="70" value="<?=$advertisement_email;?>" />
</td>
</tr>
<?
// Получаем список дополнительных свойств группы магазина
$group_propertys_result = $shop->GetPropertiesOfGroup($current_group_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'] != 212
&& $item_property['shop_list_of_properties_id'] != 6 &&
($item_property['shop_list_of_properties_type'] != 2 || $item_property['shop_list_of_properties_type'] == 2 && class_exists('lists')))
{
?>
<tr>
<td>
<?
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<?=$item_property['shop_list_of_properties_id']?>" size="70" value="<?=to_str($_REQUEST['shop_item_property'.$item_property['shop_list_of_properties_id']])?>" />
<?
break;
}
case 1: // Файл
{
echo $item_property['shop_list_of_properties_name'];
?>
<br />
<input type="file" name="shop_item_property<?=$item_property['shop_list_of_properties_id']?>" size="59" />
<?
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<?=$item_property['shop_list_of_properties_id']?>">
<?
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="<?=$list_row['lists_items_id']?>" <?=$selected?>><?=$list_row['lists_items_value']?></option>
<?
}
?>
</select>
<?
}
}
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<?=$item_property['shop_list_of_properties_id']?>" <?=$checked?> />
<?
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<?=$item_property['shop_list_of_properties_id']?>" size="70" />
<?
break;
}
}
?>
</td>
</tr>
<?
}
}
}
}
?>
<tr>
<!--<td>Код подтверждения</td>-->
<td>
<div style="clear: both; padding-top: 3px;">
Код подтверждения
</div>
<div style="float: left">
<img style="border: 1px solid #000000" src="/captcha.php?get_captcha=<?=$captcha_key?>&height=20" title="Код подтверждения"/>
</div>
<div style="float: left; margin-left: 5px;">
<input type="text" name="captcha_keystring"/>
<input type="hidden" name="captcha_key" value="<?=$captcha_key?>" size="5"/>
</div>
</td>
</tr>
<tr>
<td><input type="submit" name="add_advertisement" value="Отправить" /></td>
</tr>
</table>
</form>
</div>
<?
$form_add_advertisement = ob_get_contents();
ob_get_clean();
$external_propertys['ФормаДобавленияОбъявления'] = $form_add_advertisement;
// Begin * Сортировка по типу объявления
$shop = & singleton('shop');
$param = array();
$param['current_group_id'] = $GLOBALS['shop_item_path']['group']; // Текущая группа
//$param['xml_show_group_type'] = 'none';
$param['items_on_page'] = 20;
// Ограничение по доп. свойству
$element['type'] = 1; // 0 - основное св-во, 1 - дополнительное
$element['property_id'] = 212; // идентификатор доп. св-ва
$element['prefix'] = ' AND '; // префикс
$element['if'] = '!='; // Условие
$element['value'] = "''"; //
$element['sufix'] = '';
$param['select'][] = $element;
// Сортируем как число
$param['items_field_order'] = ' shop_properties_items_table.shop_properties_items_value DESC, shop_items_catalog_date_time';
$param['items_order'] = 'DESC';
// End * Сортировка по типу объявления
$GLOBALS['shops']->ShowShop($current_shop_id, $xsl_catalog, $param, $external_propertys);
?>
<table class="shop_block_baner">
<tr><td>
<?
$Advertisement = new Advertisement();
$banner_group = 12;
$Advertisement->ShowBannerGroup($banner_group);
?>
</td></tr></table>
<?
}
else
{
/* Вывод конкретного элемент */
$GLOBALS['shops']->ShowItem($GLOBALS['shop_item_path']['item'], $xsl_item, $param, $external_propertys);
?>
<table class="shop_block_baner">
<tr><td>
<?
$Advertisement = new Advertisement();
$banner_group = 14;
$Advertisement->ShowBannerGroup($banner_group);
?>
</td></tr></table>
<?
}
}
?>
Это для доп. свойства строка?
Если не указывать единицу измерения и указывать, то всё равно поле пустое.
Если не указывать единицу измерения и указывать, то всё равно поле пустое.
CCron, сообщите адрес страницы с проблемой и данные доступа к разделу администрирования на адрес службы поддержки.
Отослал, следы того что поддержка на сайте была - есть, а вот результата нет 

После установки обновления в «Доске объявлений» перестала отображаться постраничная навигация, т.е. просто выводится заданное из админки кол-во объявлений, а перейти на последующие не получается.
CCron, сообщите адрес страницы с проблемой и доступ к разделу администрирования на адрес службы поддержки.
Возможно ли, ограничить количество вводимых символов и обязательность заполнения полей при подаче объявлений?
Авторизация