Мои объявления
Снова здрасте)
подскажите, как в "Моих объявлениях" выводить только обявления с доски (основа ИМ)... а то заходишь в "Мои объявления" и там все магазины сайта, а нужно, что бы был магазин с ID=7 и не ссылка, на мои объявления там, а сразу список объявлений...т.е. пропустить шаг выбора магазина...
понимаю, что изменения надо вносить в XSL "СписокМагазинов" но какие не догоняю - с XSL тяжко пока....
подскажите, как в "Моих объявлениях" выводить только обявления с доски (основа ИМ)... а то заходишь в "Мои объявления" и там все магазины сайта, а нужно, что бы был магазин с ID=7 и не ссылка, на мои объявления там, а сразу список объявлений...т.е. пропустить шаг выбора магазина...
понимаю, что изменения надо вносить в XSL "СписокМагазинов" но какие не догоняю - с XSL тяжко пока....
Думаю, что XSL тут даже и не при чем, а смотреть надо в ТДС "Мои объявления".
В 34й строке кода ТДС происходит определение чего отображать - список магазинов (если условие в if() дает false) или список объявлений (если, соответственно, true):
Вот отсюда и надо "плясать", например, прикрутив к ТДС еще один параметр, под названием ID отображаемого магазина, и задавая его в соотв. разделе в Структуре сайта. Ну или просто прописав хардкодом нужное значение, хоть это и не кошерно.
В 34й строке кода ТДС происходит определение чего отображать - список магазинов (если условие в if() дает false) или список объявлений (если, соответственно, true):
// Отображаем список объявлений пользователя
if (isset($GLOBALS['ShopResult']['shop_id']) && to_int($GLOBALS['ShopResult']['shop_id']) > 0)
if (isset($GLOBALS['ShopResult']['shop_id']) && to_int($GLOBALS['ShopResult']['shop_id']) > 0)
Вот отсюда и надо "плясать", например, прикрутив к ТДС еще один параметр, под названием ID отображаемого магазина, и задавая его в соотв. разделе в Структуре сайта. Ну или просто прописав хардкодом нужное значение, хоть это и не кошерно.
Заказов не беру. Консультирую редко.
Любезный Kotoff!
не могли бы вы поподробнее написать что и как, прошлый программер свинтил, а я тут разбираюсь...
спасибо)
не могли бы вы поподробнее написать что и как, прошлый программер свинтил, а я тут разбираюсь...
спасибо)
Уважаемый MAP!O!
Что и как я вам уже в общих чертах подсказал. Давать более точные рекомендации не зная специфики вашего сайта не рискну, чтобы не попасть пальцем в небо.
Если вам нужно "дотянуть" проект оставшийся от свинтившего программера - стучитесь в аську (103-три-девять-шесть-301), договоримся
Что и как я вам уже в общих чертах подсказал. Давать более точные рекомендации не зная специфики вашего сайта не рискну, чтобы не попасть пальцем в небо.
Если вам нужно "дотянуть" проект оставшийся от свинтившего программера - стучитесь в аську (103-три-девять-шесть-301), договоримся

Заказов не беру. Консультирую редко.
подскажите пожалуйста, каким образом можно "прикрутить" ID магазина к ТДС?
в голове крутится, а собразить не могу?
в голове крутится, а собразить не могу?
самое банальное - это хардкод. Создать переменную выше, чем приведенный мною фрагмент ТДС, присвоить ей нужное значение, и проверить ее в приведенном мною условии, вместо того что там есть.
А дальше по тексту ТДС использовать значение этой переменой в месте где выбирается нужный магазин для показа объявлений.
А дальше по тексту ТДС использовать значение этой переменой в месте где выбирается нужный магазин для показа объявлений.
Заказов не беру. Консультирую редко.
Более красивый способ - создать копию этой ТДС, создать для нее дополнительный Параметр, для которого подсмотреть как извлекается список магазинов, скажем в параметрах ТДС "Интернет-магазин", и в Струкутре, в настройках страницы, выбирать нужный вам магазин в качестве источника объявлений.
Потом, уже в ТДС, получать в переменную значение этой настройки, аналогично тому как получаются названия XSL-шаблонов, и дальше действовать по варианту предолженному выше )
Потом, уже в ТДС, получать в переменную значение этой настройки, аналогично тому как получаются названия XSL-шаблонов, и дальше действовать по варианту предолженному выше )
Заказов не беру. Консультирую редко.
бр-р-р-р)))) мало что понял)
если не сложно, "деревянный" (некашерный
метод в коде)
<?php
// Получаем информацию о текущем пользователе
if (class_exists('SiteUsers'))
{
$SiteUsers = & singleton('SiteUsers');
$site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
?>
<h1>Модуль "Пользователи сайта" отключен!</h1>
<?php
return ;
}
$shop = & singleton('shop');
// Массив дополнительных параметров
$property = array();
$property['site_users_id'] = $site_user_id;
/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();
// XSL шаблон для отображения списка объявлений пользователя
$xsl_catalog = to_str($GLOBALS['LA']['xsl_catalog']);
// XSL шаблон для отображения списка магазинов
$xsl_list = to_str($GLOBALS['LA']['xsl_shops']);
// Отображаем список объявлений пользователя
if (isset($GLOBALS['ShopResult']['shop_id']) && to_int($GLOBALS['ShopResult']['shop_id']) > 0)
{
$shop_id = to_int($GLOBALS['ShopResult']['shop_id']);
// Получаем информацию о магазине
$shop_row = $shop->GetShop($shop_id);
if ($shop_row)
{
// Проверяем необходимость отображения кнопки "Добавить объявление" пользователю (Возможность добавления объявлений только определенной группе пользователей)
// Получаем список групп, в которые входит пользователь
$SiteUsers = & singleton('SiteUsers');
$external_propertys['show_button_add_advertisement'] = 1;// УДАЛИТЬ СТРОКУ, ЕСЛИ ОБЪЯВЛЕНИЕ МОЖЕТ ДОБАВЛЯТЬ ОПРЕДЕЛЕННАЯ ГРУППА ПОЛЬЗОВАТЕЛЕЙ И РАСКОММЕНТИРОВАТЬ СЛЕДУЮЩИЙ КОД:
/*$groups_user_res = $SiteUsers->GetGroupsForUser($site_user_id);
if ($groups_user_res)
{
if (in_array(7, $groups_user_res))// 6 - Идентификатолр нужной группы
{
$external_propertys['show_button_add_advertisement'] = 1;
}
}*/
$shop_name = $shop_row['shop_shops_name'];
// Берем из настроек магазина максимальные значения длины и ширины
if ($shop_row)
{
$max_width_big_image = $shop_row['shop_image_big_max_width'];
$max_height_big_image = $shop_row['shop_image_big_max_height'];
$max_width_small_image = $shop_row['shop_image_small_max_width'];
$max_height_small_image = $shop_row['shop_image_small_max_height'];
}
else
{
$max_width_big_image = 325;
$max_height_big_image = 325;
$max_width_small_image = 100;
$max_height_small_image = 100;
}
if (isset($_REQUEST['delete_file']) || isset($_REQUEST['delete_file_advertisement']))
{
$advertisement_id = to_int($_REQUEST['edit_advertisement_id']);
// Получаем информацию об объявлении
$advertisement_row = $shop->GetItem($advertisement_id);
if ($advertisement_row)
{
$site_users_id_autor = to_int($advertisement_row['site_users_id']);
// Если объявление принадлежит пользователю
if ($site_users_id_autor == $site_user_id && $site_users_id_autor > 0)
{
$DataBase = & singleton('DataBase');
if (isset($_REQUEST['delete_file_advertisement']))
{
// Удаляем файл
$shop_items_catalog_image = $advertisement_row['shop_items_catalog_image'];
$shop_items_catalog_small_image = $advertisement_row['shop_items_catalog_small_image'];
if (is_dir(CMS_FOLDER . UPLOADDIR))
{
// Путь к большой картинке
$fname = CMS_FOLDER . UPLOADDIR .'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $shop_items_catalog_image;
// Файл большого изображения существует
if (is_file($fname))
{
// Файл большого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_items_catalog_table`
SET `shop_items_catalog_image` = '',
`shop_items_catalog_big_image_height` = '0',
`shop_items_catalog_big_image_width` = '0'
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'";
$DataBase->query($query);
}
}
// Путь к малой картинке
$fname = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $shop_items_catalog_small_image;
// Файл малого изображения существует
if (is_file($fname))
{
// Файл малого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_items_catalog_table`
SET `shop_items_catalog_small_image` = '',
`shop_items_catalog_small_image_height` = '0',
`shop_items_catalog_small_image_width` = '0'
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'";
$DataBase->query($query);
}
}
}
}
}
elseif (isset($_REQUEST['property_id']) && to_int($_REQUEST['property_id']) > 0)
{
$property_id = to_int($_REQUEST['property_id']);
// Удаляем файл
// Получаем значение доп.свойства
$property_value = $shop->GetValueItemProperty($advertisement_id, $property_id);
if ($property_value)
{
$file_property_name = $property_value['shop_properties_items_file'];
$file_small_property_name = $property_value['shop_properties_items_file_small'];
if (is_dir(CMS_FOLDER . UPLOADDIR))
{
// Путь к большой картинке
$fname = CMS_FOLDER . UPLOADDIR .'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $file_property_name;
// Файл большого изображения существует
if (is_file($fname))
{
// Файл большого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_properties_items_table`
SET `shop_properties_items_value` = '',
`shop_properties_items_file` = ''
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'
AND `shop_list_of_properties_id` = '{$property_id}'";
$DataBase->query($query);
}
}
// Путь к малой картинке
$fname = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $file_small_property_name;
// Файл малого изображения существует
if (is_file($fname))
{
// Файл малого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_properties_items_table`
SET `shop_properties_items_value_small` = '',
`shop_properties_items_file_small` = ''
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'
AND `shop_list_of_properties_id` = '{$property_id}'";
$DataBase->query($query);
}
}
}
}
}
unset($DataBase);
unset($advertisement_row);
}
}
// Редактирование объявления
if (isset($_REQUEST['edit_advertisement_id']) && to_int($_REQUEST['edit_advertisement_id']) > 0)
{
$advertisement_id = to_int($_REQUEST['edit_advertisement_id']);
$param['cache_off'] = true;
// Получаем информацию об объявлении
$item_row = $shop->GetItem($advertisement_id, $param);
if ($item_row)
{
// ID автора объявления
$advertisement_site_users_id = $item_row['site_users_id'];
// Проверяем, действительно ли данное объявление принадлежит пользователю
if ($advertisement_site_users_id > 0 && $advertisement_site_users_id == $site_user_id)
{
// Получаем информацию о доп.свойствах объявления
$item_property_res = $shop->GetAllPropertiesItem($advertisement_id, array('cache_off' => 'false'));
if ($item_property_res)
{
foreach ($item_property_res as $key => $row)
{
// ФИО
if ($row['shop_list_of_properties_id'] == 4)
{
$fio = $row['shop_properties_items_value'];
}
// Телефон
if ($row['shop_list_of_properties_id'] == 5)
{
$telephone = $row['shop_properties_items_value'];
}
// E-mail
if ($row['shop_list_of_properties_id'] == 385)
{
$email = $row['shop_properties_items_value'];
}
}
}
if (!isset($fio))
{
$fio = '';
}
if (!isset($telephone))
{
$telephone = '';
}
if (!isset($email))
{
$email = '';
}
// Получаем информацию о дополнительных свойствах группы объявлений
$fields_res = $shop->GetPropertiesOfGroup($item_row['shop_groups_id'], $advertisement_id);
$form_field = array();
if ($fields_res)
{
$i = 0;
// Формируем массив полей для формы редактирования объявления
foreach ($fields_res as $key => $properties_id)
{
// Получаем значение доп.свойства
$properties = $shop-> GetValueItemProperty($advertisement_id, $properties_id);
$fields_row[$i]['shop_properties_items_value'] = $properties['shop_properties_items_value'];
$fields_row[$i]['shop_properties_items_file'] = $properties['shop_properties_items_file'];
// Получаем информацию о доп.свойстве
$properties_info = $shop->GetPropretyOfItems($properties_id);
$fields_row[$i]['shop_list_of_properties_id'] = $properties_id;
$fields_row[$i]['shop_list_of_properties_type'] = $properties_info['shop_list_of_properties_type'];
$fields_row[$i]['shop_list_of_properties_name'] = $properties_info['shop_list_of_properties_name'];
$fields_row[$i]['shop_list_of_properties_xml_name'] = $properties_info['shop_list_of_properties_xml_name'];
$fields_row[$i]['lists_id'] = $properties_info['lists_id'];
$i++;
}
// Формируем html-код формы редактирования объявления
ob_start();
?>
<h1><?php echo $item_row['shop_items_catalog_name'] ?></h1>
<!-- Форма редактирования объявления-->
<form action="./" name="advertisement_form_<?php echo $advertisement_id ?>" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000"/>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="advertisement_id" value="<?php echo $advertisement_id ?>"/>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="site_user_id" value="<?php echo $site_user_id ?>"/>
</td>
</tr>
<tr>
<td>
Заголовок
<br/>
<input type="text" size="70" name="advertisement_title" value="<?php echo $item_row['shop_items_catalog_name'] ?>"/>
</td>
</tr>
<tr>
<td>
Цена
<br/>
<input type="text" name="advertisement_price" size="70" value="<?php echo $item_row['shop_items_catalog_price'] ?>"/>
</td>
</tr>
<tr>
<td>
Текст объявления
<br/>
<textarea name="advertisement_text" cols="53" rows="5"><?php echo $item_row['shop_items_catalog_text'] ?></textarea>
</td>
</tr>
<tr>
<td>
Фото
<br/>
<input type="file" size="59" name="advertisement_file" value="<?php echo $item_row['shop_items_catalog_image'] ?>"/>
<?php
if (trim($item_row['shop_items_catalog_image']) != '')
{
?>
<a href="<?php echo '/' . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $item_row['shop_items_catalog_image'] ?>" target="_blank"><img src="/admin/images/eye.gif"/></a>
<a href="<?php echo './?edit_advertisement_id=' . $advertisement_id . '&delete_file_advertisement' ?>" onclick="return confirm('Вы действительно хотите удалить файл?');"><img src="/admin/images/delete.gif"/></a>
<?php
}
?>
</td>
</tr>
<tr>
<td>
ФИО<br />
<input type="text" name="advertisement_fio" size="70" value="<?php echo $fio;?>" />
</td>
</tr>
<tr>
<td>
Тел.<br />
<input type="text" name="advertisement_phone" size="70" value="<?php echo $telephone;?>" />
</td>
</tr>
<tr>
<td>
E-mail<br />
<input type="text" name="advertisement_email" size="70" value="<?php echo $email;?>" />
</td>
</tr>
<?php
foreach ($fields_row as $key => $fields)
{
if ($fields['shop_list_of_properties_id'] != 61
&& $fields['shop_list_of_properties_id'] != 4
&& $fields['shop_list_of_properties_id'] != 5
&& $fields['shop_list_of_properties_id'] != 385
&& $fields['shop_list_of_properties_id'] != 129
&& $fields['shop_list_of_properties_id'] != 385
&& $fields['shop_list_of_properties_id'] != 6
&& ($fields['shop_list_of_properties_type'] != 2 || $fields['shop_list_of_properties_type'] == 2 && class_exists('lists')))
{
?>
<tr>
<td>
<?php
switch ($fields['shop_list_of_properties_type'])
{
case 0: // Строка
case 3: // Большое текстовое поле
case 4: // Визуальный редактор
case 5: // Дата
case 6: // Дата-время
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="text" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="70" value="<?php echo $fields['shop_properties_items_value'] ?>" />
<?php
break;
}
case 1: // Файл
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="file" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="59" value="<?php echo $fields['shop_properties_items_value']?>"/>
<?php
if (trim(to_str($fields['shop_properties_items_file'])) != '')
{
?>
<a href="<?php echo '/' . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $fields['shop_properties_items_file'] ?>" target="_blank"><img src="/admin/images/eye.gif"/></a>
<a href="<?php echo './?edit_advertisement_id=' . $advertisement_id . '&delete_file&property_id=' . $fields['shop_list_of_properties_id']; ?>" onclick="return confirm('Вы действительно хотите удалить файл?');"><img src="/admin/images/delete.gif"/></a>
<?php
}
break;
}
case 2: // Список
{
if (class_exists('lists'))
{
$list = new lists();
$list_result = $list->SelectListsItems($fields['lists_id']);
if ($list_result)
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<select name="<?php echo $fields['shop_list_of_properties_xml_name']?>">
<?php
while ($list_row = mysql_fetch_assoc($list_result))
{
$selected = '';
if ($list_row['lists_items_id'] == $fields['shop_properties_items_value'])
{
$selected = ' selected="" ';
}
?>
<option value="<?php echo $list_row['lists_items_id']?>" <?php echo $selected?>><?php echo $list_row['lists_items_value']?></option>
<?php
}
?>
</select>
<?php
}
}
break;
}
case 7: // Флажок
{
if (isset($fields['shop_properties_items_value']) && $fields['shop_properties_items_value'] == 1)
{
$checked = ' checked="" ';
}
else
{
$checked = '';
}
?>
<input type="checkbox" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" <?php echo $checked?> />
<?php
echo $fields['shop_list_of_properties_name'];
break;
}
default:
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="text" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="70" />
<?php
break;
}
}
?>
</td>
</tr><?php
}
}
?>
<tr>
<td>
<input type="submit" name="edit_advertisement" value="Сохранить"/>
</td>
</tr>
</table>
</form>
<?php
$edit_advertisement_form = ob_get_clean();
echo $edit_advertisement_form;
}
}
else
{
?> <h1>У Вас недостаточно прав для редактирования данного объявления.</h1> <?php
}
}
/* }*/
}
// Обработка редактирования объявления
elseif (isset($_POST['edit_advertisement']))
{
$param = array();
$param['shops_id'] = $shop_id;
$param['name'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_title'])));
$param['shop_items_catalog_date_time'] = date('Y-m-d H:i:s');
$param['text'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_text'])));
if (class_exists('typograph'))
{
$typograph = new typograph();
$param['text'] = $typograph->ProcessTypographic($param['text'], true);
}
$param['price'] = to_float($_POST['advertisement_price']);
$param['path_source_big_image'] = to_str($_FILES['advertisement_file']['tmp_name']);
$param['original_file_name_big_image'] = to_str($_FILES['advertisement_file']['name']);
$param['original_file_name_small_image'] = $param['original_file_name_big_image'];
$param['use_big_image'] = true;
$param['max_width_big_image'] = to_int($max_width_big_image);
$param['max_height_big_image'] = to_int($max_height_big_image);
$param['max_width_small_image'] = to_int($max_width_small_image);
$param['max_height_small_image'] = to_int($max_height_small_image);
$param['used_watermark_big_image'] = false;
$param['used_watermark_small_image'] = false;
$param['isset_big_image'] = false;
$param['item_id'] = to_int($_POST['advertisement_id']);
$param['site_users_id'] = to_int($site_user_id);
$add_advertisement_id = $shop->InsertItem($param);
if ($add_advertisement_id)
{
// Получаем информацию об объявлении
$item_row = $shop->GetItem($add_advertisement_id);
if ($item_row)
{
// Получаем информацию о дополнительных свойствах объявления
$fields_res = $shop->GetPropertiesOfGroup($item_row['shop_groups_id'], $add_advertisement_id);
$form_field = array();
if ($fields_res)
{
$i = 0;
// Формируем массив полей для формы редактирования объявления
foreach ($fields_res as $key => $properties_id)
{
// Получаем значение доп.свойства
$properties = $shop-> GetValueItemProperty($add_advertisement_id, $properties_id);
$fields_row[$i]['shop_properties_items_value'] = $properties['shop_properties_items_value'];
// Получаем информацию о доп.свойстве
$properties_info = $shop->GetPropretyOfItems($properties_id);
$fields_row[$i]['shop_list_of_properties_id'] = $properties_info['shop_list_of_properties_id'];
$fields_row[$i]['shop_list_of_properties_type'] = $properties_info['shop_list_of_properties_type'];
$fields_row[$i]['shop_list_of_properties_name'] = $properties_info['shop_list_of_properties_name'];
$fields_row[$i]['shop_list_of_properties_xml_name'] = $properties_info['shop_list_of_properties_xml_name'];
$fields_row[$i]['lists_id'] = $properties_info['lists_id'];
$i++;
}
if ($fields_row)
{
$i = 0;
$form_field = array();
// Добавляем Дату и время добавления объявления
$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'] = $_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'] = $_POST['advertisement_phone'];
$shop->InsertPropertiesItem($param);
// Email
$param = array();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 385;
$param['shop_properties_items_value'] = $_POST['advertisement_email'];
$shop->InsertPropertiesItem($param);
// Обновляем доп.свойства
foreach ($fields_row as $key => $properties)
{
if ($properties['shop_list_of_properties_id'] != 61
&& $properties['shop_list_of_properties_id'] != 4
&& $properties['shop_list_of_properties_id'] != 5
&& $properties['shop_list_of_properties_id'] != 385
&& $properties['shop_list_of_properties_id'] != 6)
{
if (isset($_POST[$properties['shop_list_of_properties_xml_name']])
|| (isset($_FILES[$properties['shop_list_of_properties_xml_name']]['name']) && $_FILES[$properties['shop_list_of_properties_xml_name']]['size'] > 0))
{
if (isset($_POST[$properties['shop_list_of_properties_xml_name']]))
{
// Доп. свойство - не флажок и не список
if ($properties['shop_list_of_properties_type'] != 7 && $properties['shop_list_of_properties_type'] != 2)
{
$property_value = strip_tags(to_str($_POST[$properties['shop_list_of_properties_xml_name']]));
}
// Доп. свойство - флажок
elseif ($properties['shop_list_of_properties_type'] == 7)
{
$property_value = 1;
}
// Доп. свойство - список
elseif ($properties['shop_list_of_properties_type'] == 2)
{
$property_value = to_int($_POST[$properties['shop_list_of_properties_xml_name']]);
}
$shop_properties_items_value_small = '';
$shop_properties_items_file = '';
$shop_properties_items_file_small = '';
}
else // Доп. свойство - файл
{
$item_dir_path = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $add_advertisement_id;
$kernel = & singleton('kernel');
$ext = $kernel->GetExtension($_FILES[$properties['shop_list_of_properties_xml_name']]['name']);
if ($ext != '')
{
$ext = '.' . $ext;
}
$property_big_file = $item_dir_path . '/shop_property_file_' . $add_advertisement_id . '_' . $properties['shop_list_of_properties_id'] . $ext;
$property_small_file = $item_dir_path . '/small_shop_property_file_' . $add_advertisement_id . '_' . $properties['shop_list_of_properties_id'] . $ext;
$param_load_files = array();
$param_load_files['path_source_big_image'] = $_FILES[$properties['shop_list_of_properties_xml_name']]['tmp_name'];
$param_load_files['path_source_small_image'] = '';
$param_load_files['original_file_name_big_image'] = to_str($_FILES[$properties['shop_list_of_properties_xml_name']]['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($max_width_big_image);
$param_load_files['max_height_big_image'] = to_int($max_height_big_image);
$param_load_files['max_width_small_image'] = to_int($max_width_small_image);
$param_load_files['max_height_small_image'] = to_int($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'] = $properties['shop_list_of_properties_id'];
$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);
}
elseif(!isset($_POST[$properties['shop_list_of_properties_xml_name']]) && $properties['shop_list_of_properties_type'] == 7)
{
$property_value = 0;
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = $properties['shop_list_of_properties_id'];
$param['shop_properties_items_value'] = $property_value;
$shop->InsertPropertiesItem($param);
}
}
}
}
}
$path = "./";
$time = 5; // секунд
?>
<h1>Редактирование объявления</h1>
<p>Объявление успешно отредактировано. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
}
// Обработка удаления объявления
elseif (isset($_REQUEST['delete_advertisement_id']) && to_int($_REQUEST['delete_advertisement_id']) > 0)
{
$advertisement_id = to_int($_REQUEST['delete_advertisement_id']);
// Получаем информацию об объявлении
$item_row = $shop->GetItem($advertisement_id);
// Если объявление принадлежит пользователю
if ($item_row && $item_row['site_users_id'] && $item_row['site_users_id'] == $site_user_id)
{
// Удаляем объявление
$delete_result = $shop->DeleteItem($advertisement_id);
if ($delete_result)
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление успешно удалено. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
else
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление не удалено. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
else
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление не удалено. У Вас нет прав на удаление данного объявления. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
else
{
// Число элементов на страницу
if (isset($GLOBALS['ShopResult']['advertisement_on_page']))
{
if ($GLOBALS['ShopResult']['advertisement_on_page'] !== true)
{
$property['advertisement_on_page'] = to_int($GLOBALS['ShopResult']['advertisement_on_page']);
}
}
else
{
$property['advertisement_on_page'] = 10;
}
// Номер объявления, с которого начинается показ
if (isset($GLOBALS['ShopResult']['advertisement_begin']))
{
$property['advertisement_begin'] = to_int($GLOBALS['ShopResult']['advertisement_begin']);
}
else
{
$property['advertisement_begin'] = 0;
}
// Отображаем
$site_id = CURRENT_SITE;
$external_propertys['url'] = $GLOBALS['ShopResult']['url'];
// Отображаем только те элементы, которые принадлежат пользователю сайта
$element = array();
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['prefix'] = 'and'; // префикс
$element['name'] = 'site_users_id'; // ID дополнительного св-ва, указывается если тип = 1
$element['if'] = '='; // Условие
$element['value'] = $site_user_id;
$element['sufix'] = '';
$property['select'][] = $element;
$property['current_group_id'] = false;
$property['items_on_page'] = $GLOBALS['ShopResult']['item_on_page'];
$property['current_page'] = $GLOBALS['ShopResult']['current_page'];
$property['items_begin'] = $GLOBALS['ShopResult']['item_begin'];
$property['show_catalog_item_type'] = array('active', 'inactive');
$property['cache'] = false;
// Отображаем список объявлений
$shop->ShowShop($GLOBALS['ShopResult']['shop_id'], $xsl_catalog, $property, $external_propertys);
}
}
else
{
?>
<h1>Магазин с идентификатором <?php echo $shop_id ?> не найден!</h1>
<?php
return ;
}
}
// Отображаем список магазинов
else
{
$site_id = CURRENT_SITE;
$property['xml_show_group_type'] = 'none';
$property['xml_show_group_property'] = false;
$property['show_text'] = false;
$property['xml_show_tying_products'] = false;
$property['xml_show_group_property_id'] = array(0 => $GLOBALS['LA']['site_users_of_properties_id']);
// Отображаем список магазинов
$shop->ShowShops($site_id, $xsl_list, $property, $external_propertys);
}
?>
// Получаем информацию о текущем пользователе
if (class_exists('SiteUsers'))
{
$SiteUsers = & singleton('SiteUsers');
$site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
?>
<h1>Модуль "Пользователи сайта" отключен!</h1>
<?php
return ;
}
$shop = & singleton('shop');
// Массив дополнительных параметров
$property = array();
$property['site_users_id'] = $site_user_id;
/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();
// XSL шаблон для отображения списка объявлений пользователя
$xsl_catalog = to_str($GLOBALS['LA']['xsl_catalog']);
// XSL шаблон для отображения списка магазинов
$xsl_list = to_str($GLOBALS['LA']['xsl_shops']);
// Отображаем список объявлений пользователя
if (isset($GLOBALS['ShopResult']['shop_id']) && to_int($GLOBALS['ShopResult']['shop_id']) > 0)
{
$shop_id = to_int($GLOBALS['ShopResult']['shop_id']);
// Получаем информацию о магазине
$shop_row = $shop->GetShop($shop_id);
if ($shop_row)
{
// Проверяем необходимость отображения кнопки "Добавить объявление" пользователю (Возможность добавления объявлений только определенной группе пользователей)
// Получаем список групп, в которые входит пользователь
$SiteUsers = & singleton('SiteUsers');
$external_propertys['show_button_add_advertisement'] = 1;// УДАЛИТЬ СТРОКУ, ЕСЛИ ОБЪЯВЛЕНИЕ МОЖЕТ ДОБАВЛЯТЬ ОПРЕДЕЛЕННАЯ ГРУППА ПОЛЬЗОВАТЕЛЕЙ И РАСКОММЕНТИРОВАТЬ СЛЕДУЮЩИЙ КОД:
/*$groups_user_res = $SiteUsers->GetGroupsForUser($site_user_id);
if ($groups_user_res)
{
if (in_array(7, $groups_user_res))// 6 - Идентификатолр нужной группы
{
$external_propertys['show_button_add_advertisement'] = 1;
}
}*/
$shop_name = $shop_row['shop_shops_name'];
// Берем из настроек магазина максимальные значения длины и ширины
if ($shop_row)
{
$max_width_big_image = $shop_row['shop_image_big_max_width'];
$max_height_big_image = $shop_row['shop_image_big_max_height'];
$max_width_small_image = $shop_row['shop_image_small_max_width'];
$max_height_small_image = $shop_row['shop_image_small_max_height'];
}
else
{
$max_width_big_image = 325;
$max_height_big_image = 325;
$max_width_small_image = 100;
$max_height_small_image = 100;
}
if (isset($_REQUEST['delete_file']) || isset($_REQUEST['delete_file_advertisement']))
{
$advertisement_id = to_int($_REQUEST['edit_advertisement_id']);
// Получаем информацию об объявлении
$advertisement_row = $shop->GetItem($advertisement_id);
if ($advertisement_row)
{
$site_users_id_autor = to_int($advertisement_row['site_users_id']);
// Если объявление принадлежит пользователю
if ($site_users_id_autor == $site_user_id && $site_users_id_autor > 0)
{
$DataBase = & singleton('DataBase');
if (isset($_REQUEST['delete_file_advertisement']))
{
// Удаляем файл
$shop_items_catalog_image = $advertisement_row['shop_items_catalog_image'];
$shop_items_catalog_small_image = $advertisement_row['shop_items_catalog_small_image'];
if (is_dir(CMS_FOLDER . UPLOADDIR))
{
// Путь к большой картинке
$fname = CMS_FOLDER . UPLOADDIR .'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $shop_items_catalog_image;
// Файл большого изображения существует
if (is_file($fname))
{
// Файл большого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_items_catalog_table`
SET `shop_items_catalog_image` = '',
`shop_items_catalog_big_image_height` = '0',
`shop_items_catalog_big_image_width` = '0'
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'";
$DataBase->query($query);
}
}
// Путь к малой картинке
$fname = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $shop_items_catalog_small_image;
// Файл малого изображения существует
if (is_file($fname))
{
// Файл малого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_items_catalog_table`
SET `shop_items_catalog_small_image` = '',
`shop_items_catalog_small_image_height` = '0',
`shop_items_catalog_small_image_width` = '0'
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'";
$DataBase->query($query);
}
}
}
}
}
elseif (isset($_REQUEST['property_id']) && to_int($_REQUEST['property_id']) > 0)
{
$property_id = to_int($_REQUEST['property_id']);
// Удаляем файл
// Получаем значение доп.свойства
$property_value = $shop->GetValueItemProperty($advertisement_id, $property_id);
if ($property_value)
{
$file_property_name = $property_value['shop_properties_items_file'];
$file_small_property_name = $property_value['shop_properties_items_file_small'];
if (is_dir(CMS_FOLDER . UPLOADDIR))
{
// Путь к большой картинке
$fname = CMS_FOLDER . UPLOADDIR .'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $file_property_name;
// Файл большого изображения существует
if (is_file($fname))
{
// Файл большого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_properties_items_table`
SET `shop_properties_items_value` = '',
`shop_properties_items_file` = ''
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'
AND `shop_list_of_properties_id` = '{$property_id}'";
$DataBase->query($query);
}
}
// Путь к малой картинке
$fname = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $file_small_property_name;
// Файл малого изображения существует
if (is_file($fname))
{
// Файл малого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_properties_items_table`
SET `shop_properties_items_value_small` = '',
`shop_properties_items_file_small` = ''
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'
AND `shop_list_of_properties_id` = '{$property_id}'";
$DataBase->query($query);
}
}
}
}
}
unset($DataBase);
unset($advertisement_row);
}
}
// Редактирование объявления
if (isset($_REQUEST['edit_advertisement_id']) && to_int($_REQUEST['edit_advertisement_id']) > 0)
{
$advertisement_id = to_int($_REQUEST['edit_advertisement_id']);
$param['cache_off'] = true;
// Получаем информацию об объявлении
$item_row = $shop->GetItem($advertisement_id, $param);
if ($item_row)
{
// ID автора объявления
$advertisement_site_users_id = $item_row['site_users_id'];
// Проверяем, действительно ли данное объявление принадлежит пользователю
if ($advertisement_site_users_id > 0 && $advertisement_site_users_id == $site_user_id)
{
// Получаем информацию о доп.свойствах объявления
$item_property_res = $shop->GetAllPropertiesItem($advertisement_id, array('cache_off' => 'false'));
if ($item_property_res)
{
foreach ($item_property_res as $key => $row)
{
// ФИО
if ($row['shop_list_of_properties_id'] == 4)
{
$fio = $row['shop_properties_items_value'];
}
// Телефон
if ($row['shop_list_of_properties_id'] == 5)
{
$telephone = $row['shop_properties_items_value'];
}
if ($row['shop_list_of_properties_id'] == 385)
{
$email = $row['shop_properties_items_value'];
}
}
}
if (!isset($fio))
{
$fio = '';
}
if (!isset($telephone))
{
$telephone = '';
}
if (!isset($email))
{
$email = '';
}
// Получаем информацию о дополнительных свойствах группы объявлений
$fields_res = $shop->GetPropertiesOfGroup($item_row['shop_groups_id'], $advertisement_id);
$form_field = array();
if ($fields_res)
{
$i = 0;
// Формируем массив полей для формы редактирования объявления
foreach ($fields_res as $key => $properties_id)
{
// Получаем значение доп.свойства
$properties = $shop-> GetValueItemProperty($advertisement_id, $properties_id);
$fields_row[$i]['shop_properties_items_value'] = $properties['shop_properties_items_value'];
$fields_row[$i]['shop_properties_items_file'] = $properties['shop_properties_items_file'];
// Получаем информацию о доп.свойстве
$properties_info = $shop->GetPropretyOfItems($properties_id);
$fields_row[$i]['shop_list_of_properties_id'] = $properties_id;
$fields_row[$i]['shop_list_of_properties_type'] = $properties_info['shop_list_of_properties_type'];
$fields_row[$i]['shop_list_of_properties_name'] = $properties_info['shop_list_of_properties_name'];
$fields_row[$i]['shop_list_of_properties_xml_name'] = $properties_info['shop_list_of_properties_xml_name'];
$fields_row[$i]['lists_id'] = $properties_info['lists_id'];
$i++;
}
// Формируем html-код формы редактирования объявления
ob_start();
?>
<h1><?php echo $item_row['shop_items_catalog_name'] ?></h1>
<!-- Форма редактирования объявления-->
<form action="./" name="advertisement_form_<?php echo $advertisement_id ?>" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000"/>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="advertisement_id" value="<?php echo $advertisement_id ?>"/>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="site_user_id" value="<?php echo $site_user_id ?>"/>
</td>
</tr>
<tr>
<td>
Заголовок
<br/>
<input type="text" size="70" name="advertisement_title" value="<?php echo $item_row['shop_items_catalog_name'] ?>"/>
</td>
</tr>
<tr>
<td>
Цена
<br/>
<input type="text" name="advertisement_price" size="70" value="<?php echo $item_row['shop_items_catalog_price'] ?>"/>
</td>
</tr>
<tr>
<td>
Текст объявления
<br/>
<textarea name="advertisement_text" cols="53" rows="5"><?php echo $item_row['shop_items_catalog_text'] ?></textarea>
</td>
</tr>
<tr>
<td>
Фото
<br/>
<input type="file" size="59" name="advertisement_file" value="<?php echo $item_row['shop_items_catalog_image'] ?>"/>
<?php
if (trim($item_row['shop_items_catalog_image']) != '')
{
?>
<a href="<?php echo '/' . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $item_row['shop_items_catalog_image'] ?>" target="_blank"><img src="/admin/images/eye.gif"/></a>
<a href="<?php echo './?edit_advertisement_id=' . $advertisement_id . '&delete_file_advertisement' ?>" onclick="return confirm('Вы действительно хотите удалить файл?');"><img src="/admin/images/delete.gif"/></a>
<?php
}
?>
</td>
</tr>
<tr>
<td>
ФИО<br />
<input type="text" name="advertisement_fio" size="70" value="<?php echo $fio;?>" />
</td>
</tr>
<tr>
<td>
Тел.<br />
<input type="text" name="advertisement_phone" size="70" value="<?php echo $telephone;?>" />
</td>
</tr>
<tr>
<td>
E-mail<br />
<input type="text" name="advertisement_email" size="70" value="<?php echo $email;?>" />
</td>
</tr>
<?php
foreach ($fields_row as $key => $fields)
{
if ($fields['shop_list_of_properties_id'] != 61
&& $fields['shop_list_of_properties_id'] != 4
&& $fields['shop_list_of_properties_id'] != 5
&& $fields['shop_list_of_properties_id'] != 385
&& $fields['shop_list_of_properties_id'] != 129
&& $fields['shop_list_of_properties_id'] != 385
&& $fields['shop_list_of_properties_id'] != 6
&& ($fields['shop_list_of_properties_type'] != 2 || $fields['shop_list_of_properties_type'] == 2 && class_exists('lists')))
{
?>
<tr>
<td>
<?php
switch ($fields['shop_list_of_properties_type'])
{
case 0: // Строка
case 3: // Большое текстовое поле
case 4: // Визуальный редактор
case 5: // Дата
case 6: // Дата-время
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="text" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="70" value="<?php echo $fields['shop_properties_items_value'] ?>" />
<?php
break;
}
case 1: // Файл
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="file" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="59" value="<?php echo $fields['shop_properties_items_value']?>"/>
<?php
if (trim(to_str($fields['shop_properties_items_file'])) != '')
{
?>
<a href="<?php echo '/' . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $fields['shop_properties_items_file'] ?>" target="_blank"><img src="/admin/images/eye.gif"/></a>
<a href="<?php echo './?edit_advertisement_id=' . $advertisement_id . '&delete_file&property_id=' . $fields['shop_list_of_properties_id']; ?>" onclick="return confirm('Вы действительно хотите удалить файл?');"><img src="/admin/images/delete.gif"/></a>
<?php
}
break;
}
case 2: // Список
{
if (class_exists('lists'))
{
$list = new lists();
$list_result = $list->SelectListsItems($fields['lists_id']);
if ($list_result)
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<select name="<?php echo $fields['shop_list_of_properties_xml_name']?>">
<?php
while ($list_row = mysql_fetch_assoc($list_result))
{
$selected = '';
if ($list_row['lists_items_id'] == $fields['shop_properties_items_value'])
{
$selected = ' selected="" ';
}
?>
<option value="<?php echo $list_row['lists_items_id']?>" <?php echo $selected?>><?php echo $list_row['lists_items_value']?></option>
<?php
}
?>
</select>
<?php
}
}
break;
}
case 7: // Флажок
{
if (isset($fields['shop_properties_items_value']) && $fields['shop_properties_items_value'] == 1)
{
$checked = ' checked="" ';
}
else
{
$checked = '';
}
?>
<input type="checkbox" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" <?php echo $checked?> />
<?php
echo $fields['shop_list_of_properties_name'];
break;
}
default:
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="text" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="70" />
<?php
break;
}
}
?>
</td>
</tr><?php
}
}
?>
<tr>
<td>
<input type="submit" name="edit_advertisement" value="Сохранить"/>
</td>
</tr>
</table>
</form>
<?php
$edit_advertisement_form = ob_get_clean();
echo $edit_advertisement_form;
}
}
else
{
?> <h1>У Вас недостаточно прав для редактирования данного объявления.</h1> <?php
}
}
/* }*/
}
// Обработка редактирования объявления
elseif (isset($_POST['edit_advertisement']))
{
$param = array();
$param['shops_id'] = $shop_id;
$param['name'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_title'])));
$param['shop_items_catalog_date_time'] = date('Y-m-d H:i:s');
$param['text'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_text'])));
if (class_exists('typograph'))
{
$typograph = new typograph();
$param['text'] = $typograph->ProcessTypographic($param['text'], true);
}
$param['price'] = to_float($_POST['advertisement_price']);
$param['path_source_big_image'] = to_str($_FILES['advertisement_file']['tmp_name']);
$param['original_file_name_big_image'] = to_str($_FILES['advertisement_file']['name']);
$param['original_file_name_small_image'] = $param['original_file_name_big_image'];
$param['use_big_image'] = true;
$param['max_width_big_image'] = to_int($max_width_big_image);
$param['max_height_big_image'] = to_int($max_height_big_image);
$param['max_width_small_image'] = to_int($max_width_small_image);
$param['max_height_small_image'] = to_int($max_height_small_image);
$param['used_watermark_big_image'] = false;
$param['used_watermark_small_image'] = false;
$param['isset_big_image'] = false;
$param['item_id'] = to_int($_POST['advertisement_id']);
$param['site_users_id'] = to_int($site_user_id);
$add_advertisement_id = $shop->InsertItem($param);
if ($add_advertisement_id)
{
// Получаем информацию об объявлении
$item_row = $shop->GetItem($add_advertisement_id);
if ($item_row)
{
// Получаем информацию о дополнительных свойствах объявления
$fields_res = $shop->GetPropertiesOfGroup($item_row['shop_groups_id'], $add_advertisement_id);
$form_field = array();
if ($fields_res)
{
$i = 0;
// Формируем массив полей для формы редактирования объявления
foreach ($fields_res as $key => $properties_id)
{
// Получаем значение доп.свойства
$properties = $shop-> GetValueItemProperty($add_advertisement_id, $properties_id);
$fields_row[$i]['shop_properties_items_value'] = $properties['shop_properties_items_value'];
// Получаем информацию о доп.свойстве
$properties_info = $shop->GetPropretyOfItems($properties_id);
$fields_row[$i]['shop_list_of_properties_id'] = $properties_info['shop_list_of_properties_id'];
$fields_row[$i]['shop_list_of_properties_type'] = $properties_info['shop_list_of_properties_type'];
$fields_row[$i]['shop_list_of_properties_name'] = $properties_info['shop_list_of_properties_name'];
$fields_row[$i]['shop_list_of_properties_xml_name'] = $properties_info['shop_list_of_properties_xml_name'];
$fields_row[$i]['lists_id'] = $properties_info['lists_id'];
$i++;
}
if ($fields_row)
{
$i = 0;
$form_field = array();
// Добавляем Дату и время добавления объявления
$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'] = $_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'] = $_POST['advertisement_phone'];
$shop->InsertPropertiesItem($param);
$param = array();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 385;
$param['shop_properties_items_value'] = $_POST['advertisement_email'];
$shop->InsertPropertiesItem($param);
// Обновляем доп.свойства
foreach ($fields_row as $key => $properties)
{
if ($properties['shop_list_of_properties_id'] != 61
&& $properties['shop_list_of_properties_id'] != 4
&& $properties['shop_list_of_properties_id'] != 5
&& $properties['shop_list_of_properties_id'] != 385
&& $properties['shop_list_of_properties_id'] != 6)
{
if (isset($_POST[$properties['shop_list_of_properties_xml_name']])
|| (isset($_FILES[$properties['shop_list_of_properties_xml_name']]['name']) && $_FILES[$properties['shop_list_of_properties_xml_name']]['size'] > 0))
{
if (isset($_POST[$properties['shop_list_of_properties_xml_name']]))
{
// Доп. свойство - не флажок и не список
if ($properties['shop_list_of_properties_type'] != 7 && $properties['shop_list_of_properties_type'] != 2)
{
$property_value = strip_tags(to_str($_POST[$properties['shop_list_of_properties_xml_name']]));
}
// Доп. свойство - флажок
elseif ($properties['shop_list_of_properties_type'] == 7)
{
$property_value = 1;
}
// Доп. свойство - список
elseif ($properties['shop_list_of_properties_type'] == 2)
{
$property_value = to_int($_POST[$properties['shop_list_of_properties_xml_name']]);
}
$shop_properties_items_value_small = '';
$shop_properties_items_file = '';
$shop_properties_items_file_small = '';
}
else // Доп. свойство - файл
{
$item_dir_path = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $add_advertisement_id;
$kernel = & singleton('kernel');
$ext = $kernel->GetExtension($_FILES[$properties['shop_list_of_properties_xml_name']]['name']);
if ($ext != '')
{
$ext = '.' . $ext;
}
$property_big_file = $item_dir_path . '/shop_property_file_' . $add_advertisement_id . '_' . $properties['shop_list_of_properties_id'] . $ext;
$property_small_file = $item_dir_path . '/small_shop_property_file_' . $add_advertisement_id . '_' . $properties['shop_list_of_properties_id'] . $ext;
$param_load_files = array();
$param_load_files['path_source_big_image'] = $_FILES[$properties['shop_list_of_properties_xml_name']]['tmp_name'];
$param_load_files['path_source_small_image'] = '';
$param_load_files['original_file_name_big_image'] = to_str($_FILES[$properties['shop_list_of_properties_xml_name']]['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($max_width_big_image);
$param_load_files['max_height_big_image'] = to_int($max_height_big_image);
$param_load_files['max_width_small_image'] = to_int($max_width_small_image);
$param_load_files['max_height_small_image'] = to_int($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'] = $properties['shop_list_of_properties_id'];
$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);
}
elseif(!isset($_POST[$properties['shop_list_of_properties_xml_name']]) && $properties['shop_list_of_properties_type'] == 7)
{
$property_value = 0;
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = $properties['shop_list_of_properties_id'];
$param['shop_properties_items_value'] = $property_value;
$shop->InsertPropertiesItem($param);
}
}
}
}
}
$path = "./";
$time = 5; // секунд
?>
<h1>Редактирование объявления</h1>
<p>Объявление успешно отредактировано. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
}
// Обработка удаления объявления
elseif (isset($_REQUEST['delete_advertisement_id']) && to_int($_REQUEST['delete_advertisement_id']) > 0)
{
$advertisement_id = to_int($_REQUEST['delete_advertisement_id']);
// Получаем информацию об объявлении
$item_row = $shop->GetItem($advertisement_id);
// Если объявление принадлежит пользователю
if ($item_row && $item_row['site_users_id'] && $item_row['site_users_id'] == $site_user_id)
{
// Удаляем объявление
$delete_result = $shop->DeleteItem($advertisement_id);
if ($delete_result)
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление успешно удалено. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
else
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление не удалено. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
else
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление не удалено. У Вас нет прав на удаление данного объявления. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
else
{
// Число элементов на страницу
if (isset($GLOBALS['ShopResult']['advertisement_on_page']))
{
if ($GLOBALS['ShopResult']['advertisement_on_page'] !== true)
{
$property['advertisement_on_page'] = to_int($GLOBALS['ShopResult']['advertisement_on_page']);
}
}
else
{
$property['advertisement_on_page'] = 10;
}
// Номер объявления, с которого начинается показ
if (isset($GLOBALS['ShopResult']['advertisement_begin']))
{
$property['advertisement_begin'] = to_int($GLOBALS['ShopResult']['advertisement_begin']);
}
else
{
$property['advertisement_begin'] = 0;
}
// Отображаем
$site_id = CURRENT_SITE;
$external_propertys['url'] = $GLOBALS['ShopResult']['url'];
// Отображаем только те элементы, которые принадлежат пользователю сайта
$element = array();
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['prefix'] = 'and'; // префикс
$element['name'] = 'site_users_id'; // ID дополнительного св-ва, указывается если тип = 1
$element['if'] = '='; // Условие
$element['value'] = $site_user_id;
$element['sufix'] = '';
$property['select'][] = $element;
$property['current_group_id'] = false;
$property['items_on_page'] = $GLOBALS['ShopResult']['item_on_page'];
$property['current_page'] = $GLOBALS['ShopResult']['current_page'];
$property['items_begin'] = $GLOBALS['ShopResult']['item_begin'];
$property['show_catalog_item_type'] = array('active', 'inactive');
$property['cache'] = false;
// Отображаем список объявлений
$shop->ShowShop($GLOBALS['ShopResult']['shop_id'], $xsl_catalog, $property, $external_propertys);
}
}
else
{
?>
<h1>Магазин с идентификатором <?php echo $shop_id ?> не найден!</h1>
<?php
return ;
}
}
// Отображаем список магазинов
else
{
$site_id = CURRENT_SITE;
$property['xml_show_group_type'] = 'none';
$property['xml_show_group_property'] = false;
$property['show_text'] = false;
$property['xml_show_tying_products'] = false;
$property['xml_show_group_property_id'] = array(0 => $GLOBALS['LA']['site_users_of_properties_id']);
// Отображаем список магазинов
$shop->ShowShops($site_id, $xsl_list, $property, $external_propertys);
}
?>
если не сложно, "деревянный" (некашерный
метод в коде)Предположительно вот так:
Не проверял, так что может еще чего-то упустил, ХЗ.
<?php
// Получаем информацию о текущем пользователе
if (class_exists('SiteUsers'))
{
$SiteUsers = & singleton('SiteUsers');
$site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
?>
<h1>Модуль "Пользователи сайта" отключен!</h1>
<?php
return ;
}
$shop = & singleton('shop');
// Массив дополнительных параметров
$property = array();
$property['site_users_id'] = $site_user_id;
/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();
// XSL шаблон для отображения списка объявлений пользователя
$xsl_catalog = to_str($GLOBALS['LA']['xsl_catalog']);
// XSL шаблон для отображения списка магазинов
$xsl_list = to_str($GLOBALS['LA']['xsl_shops']);
// Отображаем список объявлений пользователя
$shop_id = 7; // прописываем здесь нужный идентификатор магазина.
// Получаем информацию о магазине
$shop_row = $shop->GetShop($shop_id);
if ($shop_row)
{
// Проверяем необходимость отображения кнопки "Добавить объявление" пользователю (Возможность добавления объявлений только определенной группе пользователей)
// Получаем список групп, в которые входит пользователь
$SiteUsers = & singleton('SiteUsers');
$external_propertys['show_button_add_advertisement'] = 1;// УДАЛИТЬ СТРОКУ, ЕСЛИ ОБЪЯВЛЕНИЕ МОЖЕТ ДОБАВЛЯТЬ ОПРЕДЕЛЕННАЯ ГРУППА ПОЛЬЗОВАТЕЛЕЙ И РАСКОММЕНТИРОВАТЬ СЛЕДУЮЩИЙ КОД:
/*$groups_user_res = $SiteUsers->GetGroupsForUser($site_user_id);
if ($groups_user_res)
{
if (in_array(7, $groups_user_res))// 6 - Идентификатолр нужной группы
{
$external_propertys['show_button_add_advertisement'] = 1;
}
}*/
$shop_name = $shop_row['shop_shops_name'];
// Берем из настроек магазина максимальные значения длины и ширины
if ($shop_row)
{
$max_width_big_image = $shop_row['shop_image_big_max_width'];
$max_height_big_image = $shop_row['shop_image_big_max_height'];
$max_width_small_image = $shop_row['shop_image_small_max_width'];
$max_height_small_image = $shop_row['shop_image_small_max_height'];
}
else
{
$max_width_big_image = 325;
$max_height_big_image = 325;
$max_width_small_image = 100;
$max_height_small_image = 100;
}
if (isset($_REQUEST['delete_file']) || isset($_REQUEST['delete_file_advertisement']))
{
$advertisement_id = to_int($_REQUEST['edit_advertisement_id']);
// Получаем информацию об объявлении
$advertisement_row = $shop->GetItem($advertisement_id);
if ($advertisement_row)
{
$site_users_id_autor = to_int($advertisement_row['site_users_id']);
// Если объявление принадлежит пользователю
if ($site_users_id_autor == $site_user_id && $site_users_id_autor > 0)
{
$DataBase = & singleton('DataBase');
if (isset($_REQUEST['delete_file_advertisement']))
{
// Удаляем файл
$shop_items_catalog_image = $advertisement_row['shop_items_catalog_image'];
$shop_items_catalog_small_image = $advertisement_row['shop_items_catalog_small_image'];
if (is_dir(CMS_FOLDER . UPLOADDIR))
{
// Путь к большой картинке
$fname = CMS_FOLDER . UPLOADDIR .'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $shop_items_catalog_image;
// Файл большого изображения существует
if (is_file($fname))
{
// Файл большого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_items_catalog_table`
SET `shop_items_catalog_image` = '',
`shop_items_catalog_big_image_height` = '0',
`shop_items_catalog_big_image_width` = '0'
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'";
$DataBase->query($query);
}
}
// Путь к малой картинке
$fname = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $shop_items_catalog_small_image;
// Файл малого изображения существует
if (is_file($fname))
{
// Файл малого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_items_catalog_table`
SET `shop_items_catalog_small_image` = '',
`shop_items_catalog_small_image_height` = '0',
`shop_items_catalog_small_image_width` = '0'
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'";
$DataBase->query($query);
}
}
}
}
}
elseif (isset($_REQUEST['property_id']) && to_int($_REQUEST['property_id']) > 0)
{
$property_id = to_int($_REQUEST['property_id']);
// Удаляем файл
// Получаем значение доп.свойства
$property_value = $shop->GetValueItemProperty($advertisement_id, $property_id);
if ($property_value)
{
$file_property_name = $property_value['shop_properties_items_file'];
$file_small_property_name = $property_value['shop_properties_items_file_small'];
if (is_dir(CMS_FOLDER . UPLOADDIR))
{
// Путь к большой картинке
$fname = CMS_FOLDER . UPLOADDIR .'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $file_property_name;
// Файл большого изображения существует
if (is_file($fname))
{
// Файл большого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_properties_items_table`
SET `shop_properties_items_value` = '',
`shop_properties_items_file` = ''
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'
AND `shop_list_of_properties_id` = '{$property_id}'";
$DataBase->query($query);
}
}
// Путь к малой картинке
$fname = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $file_small_property_name;
// Файл малого изображения существует
if (is_file($fname))
{
// Файл малого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_properties_items_table`
SET `shop_properties_items_value_small` = '',
`shop_properties_items_file_small` = ''
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'
AND `shop_list_of_properties_id` = '{$property_id}'";
$DataBase->query($query);
}
}
}
}
}
unset($DataBase);
unset($advertisement_row);
}
}
// Редактирование объявления
if (isset($_REQUEST['edit_advertisement_id']) && to_int($_REQUEST['edit_advertisement_id']) > 0)
{
$advertisement_id = to_int($_REQUEST['edit_advertisement_id']);
$param['cache_off'] = true;
// Получаем информацию об объявлении
$item_row = $shop->GetItem($advertisement_id, $param);
if ($item_row)
{
// ID автора объявления
$advertisement_site_users_id = $item_row['site_users_id'];
// Проверяем, действительно ли данное объявление принадлежит пользователю
if ($advertisement_site_users_id > 0 && $advertisement_site_users_id == $site_user_id)
{
// Получаем информацию о доп.свойствах объявления
$item_property_res = $shop->GetAllPropertiesItem($advertisement_id, array('cache_off' => 'false'));
if ($item_property_res)
{
foreach ($item_property_res as $key => $row)
{
// ФИО
if ($row['shop_list_of_properties_id'] == 4)
{
$fio = $row['shop_properties_items_value'];
}
// Телефон
if ($row['shop_list_of_properties_id'] == 5)
{
$telephone = $row['shop_properties_items_value'];
}
// E-mail
if ($row['shop_list_of_properties_id'] == 385)
{
$email = $row['shop_properties_items_value'];
}
}
}
if (!isset($fio))
{
$fio = '';
}
if (!isset($telephone))
{
$telephone = '';
}
if (!isset($email))
{
$email = '';
}
// Получаем информацию о дополнительных свойствах группы объявлений
$fields_res = $shop->GetPropertiesOfGroup($item_row['shop_groups_id'], $advertisement_id);
$form_field = array();
if ($fields_res)
{
$i = 0;
// Формируем массив полей для формы редактирования объявления
foreach ($fields_res as $key => $properties_id)
{
// Получаем значение доп.свойства
$properties = $shop-> GetValueItemProperty($advertisement_id, $properties_id);
$fields_row[$i]['shop_properties_items_value'] = $properties['shop_properties_items_value'];
$fields_row[$i]['shop_properties_items_file'] = $properties['shop_properties_items_file'];
// Получаем информацию о доп.свойстве
$properties_info = $shop->GetPropretyOfItems($properties_id);
$fields_row[$i]['shop_list_of_properties_id'] = $properties_id;
$fields_row[$i]['shop_list_of_properties_type'] = $properties_info['shop_list_of_properties_type'];
$fields_row[$i]['shop_list_of_properties_name'] = $properties_info['shop_list_of_properties_name'];
$fields_row[$i]['shop_list_of_properties_xml_name'] = $properties_info['shop_list_of_properties_xml_name'];
$fields_row[$i]['lists_id'] = $properties_info['lists_id'];
$i++;
}
// Формируем html-код формы редактирования объявления
ob_start();
?>
<h1><?php echo $item_row['shop_items_catalog_name'] ?></h1>
<!-- Форма редактирования объявления-->
<form action="./" name="advertisement_form_<?php echo $advertisement_id ?>" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000"/>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="advertisement_id" value="<?php echo $advertisement_id ?>"/>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="site_user_id" value="<?php echo $site_user_id ?>"/>
</td>
</tr>
<tr>
<td>
Заголовок
<br/>
<input type="text" size="70" name="advertisement_title" value="<?php echo $item_row['shop_items_catalog_name'] ?>"/>
</td>
</tr>
<tr>
<td>
Цена
<br/>
<input type="text" name="advertisement_price" size="70" value="<?php echo $item_row['shop_items_catalog_price'] ?>"/>
</td>
</tr>
<tr>
<td>
Текст объявления
<br/>
<textarea name="advertisement_text" cols="53" rows="5"><?php echo $item_row['shop_items_catalog_text'] ?></textarea>
</td>
</tr>
<tr>
<td>
Фото
<br/>
<input type="file" size="59" name="advertisement_file" value="<?php echo $item_row['shop_items_catalog_image'] ?>"/>
<?php
if (trim($item_row['shop_items_catalog_image']) != '')
{
?>
<a href="<?php echo '/' . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $item_row['shop_items_catalog_image'] ?>" target="_blank"><img src="/admin/images/eye.gif"/></a>
<a href="<?php echo './?edit_advertisement_id=' . $advertisement_id . '&delete_file_advertisement' ?>" onclick="return confirm('Вы действительно хотите удалить файл?');"><img src="/admin/images/delete.gif"/></a>
<?php
}
?>
</td>
</tr>
<tr>
<td>
ФИО<br />
<input type="text" name="advertisement_fio" size="70" value="<?php echo $fio;?>" />
</td>
</tr>
<tr>
<td>
Тел.<br />
<input type="text" name="advertisement_phone" size="70" value="<?php echo $telephone;?>" />
</td>
</tr>
<tr>
<td>
E-mail<br />
<input type="text" name="advertisement_email" size="70" value="<?php echo $email;?>" />
</td>
</tr>
<?php
foreach ($fields_row as $key => $fields)
{
if ($fields['shop_list_of_properties_id'] != 61
&& $fields['shop_list_of_properties_id'] != 4
&& $fields['shop_list_of_properties_id'] != 5
&& $fields['shop_list_of_properties_id'] != 385
&& $fields['shop_list_of_properties_id'] != 129
&& $fields['shop_list_of_properties_id'] != 385
&& $fields['shop_list_of_properties_id'] != 6
&& ($fields['shop_list_of_properties_type'] != 2 || $fields['shop_list_of_properties_type'] == 2 && class_exists('lists')))
{
?>
<tr>
<td>
<?php
switch ($fields['shop_list_of_properties_type'])
{
case 0: // Строка
case 3: // Большое текстовое поле
case 4: // Визуальный редактор
case 5: // Дата
case 6: // Дата-время
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="text" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="70" value="<?php echo $fields['shop_properties_items_value'] ?>" />
<?php
break;
}
case 1: // Файл
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="file" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="59" value="<?php echo $fields['shop_properties_items_value']?>"/>
<?php
if (trim(to_str($fields['shop_properties_items_file'])) != '')
{
?>
<a href="<?php echo '/' . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $fields['shop_properties_items_file'] ?>" target="_blank"><img src="/admin/images/eye.gif"/></a>
<a href="<?php echo './?edit_advertisement_id=' . $advertisement_id . '&delete_file&property_id=' . $fields['shop_list_of_properties_id']; ?>" onclick="return confirm('Вы действительно хотите удалить файл?');"><img src="/admin/images/delete.gif"/></a>
<?php
}
break;
}
case 2: // Список
{
if (class_exists('lists'))
{
$list = new lists();
$list_result = $list->SelectListsItems($fields['lists_id']);
if ($list_result)
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<select name="<?php echo $fields['shop_list_of_properties_xml_name']?>">
<?php
while ($list_row = mysql_fetch_assoc($list_result))
{
$selected = '';
if ($list_row['lists_items_id'] == $fields['shop_properties_items_value'])
{
$selected = ' selected="" ';
}
?>
<option value="<?php echo $list_row['lists_items_id']?>" <?php echo $selected?>><?php echo $list_row['lists_items_value']?></option>
<?php
}
?>
</select>
<?php
}
}
break;
}
case 7: // Флажок
{
if (isset($fields['shop_properties_items_value']) && $fields['shop_properties_items_value'] == 1)
{
$checked = ' checked="" ';
}
else
{
$checked = '';
}
?>
<input type="checkbox" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" <?php echo $checked?> />
<?php
echo $fields['shop_list_of_properties_name'];
break;
}
default:
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="text" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="70" />
<?php
break;
}
}
?>
</td>
</tr><?php
}
}
?>
<tr>
<td>
<input type="submit" name="edit_advertisement" value="Сохранить"/>
</td>
</tr>
</table>
</form>
<?php
$edit_advertisement_form = ob_get_clean();
echo $edit_advertisement_form;
}
}
else
{
?> <h1>У Вас недостаточно прав для редактирования данного объявления.</h1> <?php
}
}
/* }*/
}
// Обработка редактирования объявления
elseif (isset($_POST['edit_advertisement']))
{
$param = array();
$param['shops_id'] = $shop_id;
$param['name'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_title'])));
$param['shop_items_catalog_date_time'] = date('Y-m-d H:i:s');
$param['text'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_text'])));
if (class_exists('typograph'))
{
$typograph = new typograph();
$param['text'] = $typograph->ProcessTypographic($param['text'], true);
}
$param['price'] = to_float($_POST['advertisement_price']);
$param['path_source_big_image'] = to_str($_FILES['advertisement_file']['tmp_name']);
$param['original_file_name_big_image'] = to_str($_FILES['advertisement_file']['name']);
$param['original_file_name_small_image'] = $param['original_file_name_big_image'];
$param['use_big_image'] = true;
$param['max_width_big_image'] = to_int($max_width_big_image);
$param['max_height_big_image'] = to_int($max_height_big_image);
$param['max_width_small_image'] = to_int($max_width_small_image);
$param['max_height_small_image'] = to_int($max_height_small_image);
$param['used_watermark_big_image'] = false;
$param['used_watermark_small_image'] = false;
$param['isset_big_image'] = false;
$param['item_id'] = to_int($_POST['advertisement_id']);
$param['site_users_id'] = to_int($site_user_id);
$add_advertisement_id = $shop->InsertItem($param);
if ($add_advertisement_id)
{
// Получаем информацию об объявлении
$item_row = $shop->GetItem($add_advertisement_id);
if ($item_row)
{
// Получаем информацию о дополнительных свойствах объявления
$fields_res = $shop->GetPropertiesOfGroup($item_row['shop_groups_id'], $add_advertisement_id);
$form_field = array();
if ($fields_res)
{
$i = 0;
// Формируем массив полей для формы редактирования объявления
foreach ($fields_res as $key => $properties_id)
{
// Получаем значение доп.свойства
$properties = $shop-> GetValueItemProperty($add_advertisement_id, $properties_id);
$fields_row[$i]['shop_properties_items_value'] = $properties['shop_properties_items_value'];
// Получаем информацию о доп.свойстве
$properties_info = $shop->GetPropretyOfItems($properties_id);
$fields_row[$i]['shop_list_of_properties_id'] = $properties_info['shop_list_of_properties_id'];
$fields_row[$i]['shop_list_of_properties_type'] = $properties_info['shop_list_of_properties_type'];
$fields_row[$i]['shop_list_of_properties_name'] = $properties_info['shop_list_of_properties_name'];
$fields_row[$i]['shop_list_of_properties_xml_name'] = $properties_info['shop_list_of_properties_xml_name'];
$fields_row[$i]['lists_id'] = $properties_info['lists_id'];
$i++;
}
if ($fields_row)
{
$i = 0;
$form_field = array();
// Добавляем Дату и время добавления объявления
$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'] = $_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'] = $_POST['advertisement_phone'];
$shop->InsertPropertiesItem($param);
// Email
$param = array();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 385;
$param['shop_properties_items_value'] = $_POST['advertisement_email'];
$shop->InsertPropertiesItem($param);
// Обновляем доп.свойства
foreach ($fields_row as $key => $properties)
{
if ($properties['shop_list_of_properties_id'] != 61
&& $properties['shop_list_of_properties_id'] != 4
&& $properties['shop_list_of_properties_id'] != 5
&& $properties['shop_list_of_properties_id'] != 385
&& $properties['shop_list_of_properties_id'] != 6)
{
if (isset($_POST[$properties['shop_list_of_properties_xml_name']])
|| (isset($_FILES[$properties['shop_list_of_properties_xml_name']]['name']) && $_FILES[$properties['shop_list_of_properties_xml_name']]['size'] > 0))
{
if (isset($_POST[$properties['shop_list_of_properties_xml_name']]))
{
// Доп. свойство - не флажок и не список
if ($properties['shop_list_of_properties_type'] != 7 && $properties['shop_list_of_properties_type'] != 2)
{
$property_value = strip_tags(to_str($_POST[$properties['shop_list_of_properties_xml_name']]));
}
// Доп. свойство - флажок
elseif ($properties['shop_list_of_properties_type'] == 7)
{
$property_value = 1;
}
// Доп. свойство - список
elseif ($properties['shop_list_of_properties_type'] == 2)
{
$property_value = to_int($_POST[$properties['shop_list_of_properties_xml_name']]);
}
$shop_properties_items_value_small = '';
$shop_properties_items_file = '';
$shop_properties_items_file_small = '';
}
else // Доп. свойство - файл
{
$item_dir_path = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $add_advertisement_id;
$kernel = & singleton('kernel');
$ext = $kernel->GetExtension($_FILES[$properties['shop_list_of_properties_xml_name']]['name']);
if ($ext != '')
{
$ext = '.' . $ext;
}
$property_big_file = $item_dir_path . '/shop_property_file_' . $add_advertisement_id . '_' . $properties['shop_list_of_properties_id'] . $ext;
$property_small_file = $item_dir_path . '/small_shop_property_file_' . $add_advertisement_id . '_' . $properties['shop_list_of_properties_id'] . $ext;
$param_load_files = array();
$param_load_files['path_source_big_image'] = $_FILES[$properties['shop_list_of_properties_xml_name']]['tmp_name'];
$param_load_files['path_source_small_image'] = '';
$param_load_files['original_file_name_big_image'] = to_str($_FILES[$properties['shop_list_of_properties_xml_name']]['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($max_width_big_image);
$param_load_files['max_height_big_image'] = to_int($max_height_big_image);
$param_load_files['max_width_small_image'] = to_int($max_width_small_image);
$param_load_files['max_height_small_image'] = to_int($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'] = $properties['shop_list_of_properties_id'];
$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);
}
elseif(!isset($_POST[$properties['shop_list_of_properties_xml_name']]) && $properties['shop_list_of_properties_type'] == 7)
{
$property_value = 0;
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = $properties['shop_list_of_properties_id'];
$param['shop_properties_items_value'] = $property_value;
$shop->InsertPropertiesItem($param);
}
}
}
}
}
$path = "./";
$time = 5; // секунд
?>
<h1>Редактирование объявления</h1>
<p>Объявление успешно отредактировано. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
}
// Обработка удаления объявления
elseif (isset($_REQUEST['delete_advertisement_id']) && to_int($_REQUEST['delete_advertisement_id']) > 0)
{
$advertisement_id = to_int($_REQUEST['delete_advertisement_id']);
// Получаем информацию об объявлении
$item_row = $shop->GetItem($advertisement_id);
// Если объявление принадлежит пользователю
if ($item_row && $item_row['site_users_id'] && $item_row['site_users_id'] == $site_user_id)
{
// Удаляем объявление
$delete_result = $shop->DeleteItem($advertisement_id);
if ($delete_result)
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление успешно удалено. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
else
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление не удалено. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
else
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление не удалено. У Вас нет прав на удаление данного объявления. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
else
{
// Число элементов на страницу
if (isset($GLOBALS['ShopResult']['advertisement_on_page']))
{
if ($GLOBALS['ShopResult']['advertisement_on_page'] !== true)
{
$property['advertisement_on_page'] = to_int($GLOBALS['ShopResult']['advertisement_on_page']);
}
}
else
{
$property['advertisement_on_page'] = 10;
}
// Номер объявления, с которого начинается показ
if (isset($GLOBALS['ShopResult']['advertisement_begin']))
{
$property['advertisement_begin'] = to_int($GLOBALS['ShopResult']['advertisement_begin']);
}
else
{
$property['advertisement_begin'] = 0;
}
// Отображаем
$site_id = CURRENT_SITE;
$external_propertys['url'] = $GLOBALS['ShopResult']['url'];
// Отображаем только те элементы, которые принадлежат пользователю сайта
$element = array();
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['prefix'] = 'and'; // префикс
$element['name'] = 'site_users_id'; // ID дополнительного св-ва, указывается если тип = 1
$element['if'] = '='; // Условие
$element['value'] = $site_user_id;
$element['sufix'] = '';
$property['select'][] = $element;
$property['current_group_id'] = false;
$property['items_on_page'] = $GLOBALS['ShopResult']['item_on_page'];
$property['current_page'] = $GLOBALS['ShopResult']['current_page'];
$property['items_begin'] = $GLOBALS['ShopResult']['item_begin'];
$property['show_catalog_item_type'] = array('active', 'inactive');
$property['cache'] = false;
// Отображаем список объявлений
$shop->ShowShop($GLOBALS['ShopResult']['shop_id'], $xsl_catalog, $property, $external_propertys);
}
}
else
{
?>
<h1>Магазин с идентификатором <?php echo $shop_id ?> не найден!</h1>
<?php
return ;
}
?>
// Получаем информацию о текущем пользователе
if (class_exists('SiteUsers'))
{
$SiteUsers = & singleton('SiteUsers');
$site_user_id = $SiteUsers->GetCurrentSiteUser();
}
else
{
?>
<h1>Модуль "Пользователи сайта" отключен!</h1>
<?php
return ;
}
$shop = & singleton('shop');
// Массив дополнительных параметров
$property = array();
$property['site_users_id'] = $site_user_id;
/* Массив внешних параметров, передаваемых в XML */
$external_propertys = array();
// XSL шаблон для отображения списка объявлений пользователя
$xsl_catalog = to_str($GLOBALS['LA']['xsl_catalog']);
// XSL шаблон для отображения списка магазинов
$xsl_list = to_str($GLOBALS['LA']['xsl_shops']);
// Отображаем список объявлений пользователя
$shop_id = 7; // прописываем здесь нужный идентификатор магазина.
// Получаем информацию о магазине
$shop_row = $shop->GetShop($shop_id);
if ($shop_row)
{
// Проверяем необходимость отображения кнопки "Добавить объявление" пользователю (Возможность добавления объявлений только определенной группе пользователей)
// Получаем список групп, в которые входит пользователь
$SiteUsers = & singleton('SiteUsers');
$external_propertys['show_button_add_advertisement'] = 1;// УДАЛИТЬ СТРОКУ, ЕСЛИ ОБЪЯВЛЕНИЕ МОЖЕТ ДОБАВЛЯТЬ ОПРЕДЕЛЕННАЯ ГРУППА ПОЛЬЗОВАТЕЛЕЙ И РАСКОММЕНТИРОВАТЬ СЛЕДУЮЩИЙ КОД:
/*$groups_user_res = $SiteUsers->GetGroupsForUser($site_user_id);
if ($groups_user_res)
{
if (in_array(7, $groups_user_res))// 6 - Идентификатолр нужной группы
{
$external_propertys['show_button_add_advertisement'] = 1;
}
}*/
$shop_name = $shop_row['shop_shops_name'];
// Берем из настроек магазина максимальные значения длины и ширины
if ($shop_row)
{
$max_width_big_image = $shop_row['shop_image_big_max_width'];
$max_height_big_image = $shop_row['shop_image_big_max_height'];
$max_width_small_image = $shop_row['shop_image_small_max_width'];
$max_height_small_image = $shop_row['shop_image_small_max_height'];
}
else
{
$max_width_big_image = 325;
$max_height_big_image = 325;
$max_width_small_image = 100;
$max_height_small_image = 100;
}
if (isset($_REQUEST['delete_file']) || isset($_REQUEST['delete_file_advertisement']))
{
$advertisement_id = to_int($_REQUEST['edit_advertisement_id']);
// Получаем информацию об объявлении
$advertisement_row = $shop->GetItem($advertisement_id);
if ($advertisement_row)
{
$site_users_id_autor = to_int($advertisement_row['site_users_id']);
// Если объявление принадлежит пользователю
if ($site_users_id_autor == $site_user_id && $site_users_id_autor > 0)
{
$DataBase = & singleton('DataBase');
if (isset($_REQUEST['delete_file_advertisement']))
{
// Удаляем файл
$shop_items_catalog_image = $advertisement_row['shop_items_catalog_image'];
$shop_items_catalog_small_image = $advertisement_row['shop_items_catalog_small_image'];
if (is_dir(CMS_FOLDER . UPLOADDIR))
{
// Путь к большой картинке
$fname = CMS_FOLDER . UPLOADDIR .'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $shop_items_catalog_image;
// Файл большого изображения существует
if (is_file($fname))
{
// Файл большого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_items_catalog_table`
SET `shop_items_catalog_image` = '',
`shop_items_catalog_big_image_height` = '0',
`shop_items_catalog_big_image_width` = '0'
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'";
$DataBase->query($query);
}
}
// Путь к малой картинке
$fname = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $shop_items_catalog_small_image;
// Файл малого изображения существует
if (is_file($fname))
{
// Файл малого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_items_catalog_table`
SET `shop_items_catalog_small_image` = '',
`shop_items_catalog_small_image_height` = '0',
`shop_items_catalog_small_image_width` = '0'
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'";
$DataBase->query($query);
}
}
}
}
}
elseif (isset($_REQUEST['property_id']) && to_int($_REQUEST['property_id']) > 0)
{
$property_id = to_int($_REQUEST['property_id']);
// Удаляем файл
// Получаем значение доп.свойства
$property_value = $shop->GetValueItemProperty($advertisement_id, $property_id);
if ($property_value)
{
$file_property_name = $property_value['shop_properties_items_file'];
$file_small_property_name = $property_value['shop_properties_items_file_small'];
if (is_dir(CMS_FOLDER . UPLOADDIR))
{
// Путь к большой картинке
$fname = CMS_FOLDER . UPLOADDIR .'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $file_property_name;
// Файл большого изображения существует
if (is_file($fname))
{
// Файл большого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_properties_items_table`
SET `shop_properties_items_value` = '',
`shop_properties_items_file` = ''
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'
AND `shop_list_of_properties_id` = '{$property_id}'";
$DataBase->query($query);
}
}
// Путь к малой картинке
$fname = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $file_small_property_name;
// Файл малого изображения существует
if (is_file($fname))
{
// Файл малого изображения удален
if (unlink($fname))
{
// Удаляем файл из таблицы
$query = "UPDATE `shop_properties_items_table`
SET `shop_properties_items_value_small` = '',
`shop_properties_items_file_small` = ''
WHERE `shop_items_catalog_item_id` = '{$advertisement_id}'
AND `shop_list_of_properties_id` = '{$property_id}'";
$DataBase->query($query);
}
}
}
}
}
unset($DataBase);
unset($advertisement_row);
}
}
// Редактирование объявления
if (isset($_REQUEST['edit_advertisement_id']) && to_int($_REQUEST['edit_advertisement_id']) > 0)
{
$advertisement_id = to_int($_REQUEST['edit_advertisement_id']);
$param['cache_off'] = true;
// Получаем информацию об объявлении
$item_row = $shop->GetItem($advertisement_id, $param);
if ($item_row)
{
// ID автора объявления
$advertisement_site_users_id = $item_row['site_users_id'];
// Проверяем, действительно ли данное объявление принадлежит пользователю
if ($advertisement_site_users_id > 0 && $advertisement_site_users_id == $site_user_id)
{
// Получаем информацию о доп.свойствах объявления
$item_property_res = $shop->GetAllPropertiesItem($advertisement_id, array('cache_off' => 'false'));
if ($item_property_res)
{
foreach ($item_property_res as $key => $row)
{
// ФИО
if ($row['shop_list_of_properties_id'] == 4)
{
$fio = $row['shop_properties_items_value'];
}
// Телефон
if ($row['shop_list_of_properties_id'] == 5)
{
$telephone = $row['shop_properties_items_value'];
}
if ($row['shop_list_of_properties_id'] == 385)
{
$email = $row['shop_properties_items_value'];
}
}
}
if (!isset($fio))
{
$fio = '';
}
if (!isset($telephone))
{
$telephone = '';
}
if (!isset($email))
{
$email = '';
}
// Получаем информацию о дополнительных свойствах группы объявлений
$fields_res = $shop->GetPropertiesOfGroup($item_row['shop_groups_id'], $advertisement_id);
$form_field = array();
if ($fields_res)
{
$i = 0;
// Формируем массив полей для формы редактирования объявления
foreach ($fields_res as $key => $properties_id)
{
// Получаем значение доп.свойства
$properties = $shop-> GetValueItemProperty($advertisement_id, $properties_id);
$fields_row[$i]['shop_properties_items_value'] = $properties['shop_properties_items_value'];
$fields_row[$i]['shop_properties_items_file'] = $properties['shop_properties_items_file'];
// Получаем информацию о доп.свойстве
$properties_info = $shop->GetPropretyOfItems($properties_id);
$fields_row[$i]['shop_list_of_properties_id'] = $properties_id;
$fields_row[$i]['shop_list_of_properties_type'] = $properties_info['shop_list_of_properties_type'];
$fields_row[$i]['shop_list_of_properties_name'] = $properties_info['shop_list_of_properties_name'];
$fields_row[$i]['shop_list_of_properties_xml_name'] = $properties_info['shop_list_of_properties_xml_name'];
$fields_row[$i]['lists_id'] = $properties_info['lists_id'];
$i++;
}
// Формируем html-код формы редактирования объявления
ob_start();
?>
<h1><?php echo $item_row['shop_items_catalog_name'] ?></h1>
<!-- Форма редактирования объявления-->
<form action="./" name="advertisement_form_<?php echo $advertisement_id ?>" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000"/>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="advertisement_id" value="<?php echo $advertisement_id ?>"/>
</td>
</tr>
<tr>
<td>
<input type="hidden" name="site_user_id" value="<?php echo $site_user_id ?>"/>
</td>
</tr>
<tr>
<td>
Заголовок
<br/>
<input type="text" size="70" name="advertisement_title" value="<?php echo $item_row['shop_items_catalog_name'] ?>"/>
</td>
</tr>
<tr>
<td>
Цена
<br/>
<input type="text" name="advertisement_price" size="70" value="<?php echo $item_row['shop_items_catalog_price'] ?>"/>
</td>
</tr>
<tr>
<td>
Текст объявления
<br/>
<textarea name="advertisement_text" cols="53" rows="5"><?php echo $item_row['shop_items_catalog_text'] ?></textarea>
</td>
</tr>
<tr>
<td>
Фото
<br/>
<input type="file" size="59" name="advertisement_file" value="<?php echo $item_row['shop_items_catalog_image'] ?>"/>
<?php
if (trim($item_row['shop_items_catalog_image']) != '')
{
?>
<a href="<?php echo '/' . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $item_row['shop_items_catalog_image'] ?>" target="_blank"><img src="/admin/images/eye.gif"/></a>
<a href="<?php echo './?edit_advertisement_id=' . $advertisement_id . '&delete_file_advertisement' ?>" onclick="return confirm('Вы действительно хотите удалить файл?');"><img src="/admin/images/delete.gif"/></a>
<?php
}
?>
</td>
</tr>
<tr>
<td>
ФИО<br />
<input type="text" name="advertisement_fio" size="70" value="<?php echo $fio;?>" />
</td>
</tr>
<tr>
<td>
Тел.<br />
<input type="text" name="advertisement_phone" size="70" value="<?php echo $telephone;?>" />
</td>
</tr>
<tr>
<td>
E-mail<br />
<input type="text" name="advertisement_email" size="70" value="<?php echo $email;?>" />
</td>
</tr>
<?php
foreach ($fields_row as $key => $fields)
{
if ($fields['shop_list_of_properties_id'] != 61
&& $fields['shop_list_of_properties_id'] != 4
&& $fields['shop_list_of_properties_id'] != 5
&& $fields['shop_list_of_properties_id'] != 385
&& $fields['shop_list_of_properties_id'] != 129
&& $fields['shop_list_of_properties_id'] != 385
&& $fields['shop_list_of_properties_id'] != 6
&& ($fields['shop_list_of_properties_type'] != 2 || $fields['shop_list_of_properties_type'] == 2 && class_exists('lists')))
{
?>
<tr>
<td>
<?php
switch ($fields['shop_list_of_properties_type'])
{
case 0: // Строка
case 3: // Большое текстовое поле
case 4: // Визуальный редактор
case 5: // Дата
case 6: // Дата-время
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="text" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="70" value="<?php echo $fields['shop_properties_items_value'] ?>" />
<?php
break;
}
case 1: // Файл
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="file" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="59" value="<?php echo $fields['shop_properties_items_value']?>"/>
<?php
if (trim(to_str($fields['shop_properties_items_file'])) != '')
{
?>
<a href="<?php echo '/' . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $advertisement_id . '/' . $fields['shop_properties_items_file'] ?>" target="_blank"><img src="/admin/images/eye.gif"/></a>
<a href="<?php echo './?edit_advertisement_id=' . $advertisement_id . '&delete_file&property_id=' . $fields['shop_list_of_properties_id']; ?>" onclick="return confirm('Вы действительно хотите удалить файл?');"><img src="/admin/images/delete.gif"/></a>
<?php
}
break;
}
case 2: // Список
{
if (class_exists('lists'))
{
$list = new lists();
$list_result = $list->SelectListsItems($fields['lists_id']);
if ($list_result)
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<select name="<?php echo $fields['shop_list_of_properties_xml_name']?>">
<?php
while ($list_row = mysql_fetch_assoc($list_result))
{
$selected = '';
if ($list_row['lists_items_id'] == $fields['shop_properties_items_value'])
{
$selected = ' selected="" ';
}
?>
<option value="<?php echo $list_row['lists_items_id']?>" <?php echo $selected?>><?php echo $list_row['lists_items_value']?></option>
<?php
}
?>
</select>
<?php
}
}
break;
}
case 7: // Флажок
{
if (isset($fields['shop_properties_items_value']) && $fields['shop_properties_items_value'] == 1)
{
$checked = ' checked="" ';
}
else
{
$checked = '';
}
?>
<input type="checkbox" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" <?php echo $checked?> />
<?php
echo $fields['shop_list_of_properties_name'];
break;
}
default:
{
echo $fields['shop_list_of_properties_name'];
?>
<br />
<input type="text" name="<?php echo $fields['shop_list_of_properties_xml_name']?>" size="70" />
<?php
break;
}
}
?>
</td>
</tr><?php
}
}
?>
<tr>
<td>
<input type="submit" name="edit_advertisement" value="Сохранить"/>
</td>
</tr>
</table>
</form>
<?php
$edit_advertisement_form = ob_get_clean();
echo $edit_advertisement_form;
}
}
else
{
?> <h1>У Вас недостаточно прав для редактирования данного объявления.</h1> <?php
}
}
/* }*/
}
// Обработка редактирования объявления
elseif (isset($_POST['edit_advertisement']))
{
$param = array();
$param['shops_id'] = $shop_id;
$param['name'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_title'])));
$param['shop_items_catalog_date_time'] = date('Y-m-d H:i:s');
$param['text'] = htmlspecialchars(strip_tags(to_str($_POST['advertisement_text'])));
if (class_exists('typograph'))
{
$typograph = new typograph();
$param['text'] = $typograph->ProcessTypographic($param['text'], true);
}
$param['price'] = to_float($_POST['advertisement_price']);
$param['path_source_big_image'] = to_str($_FILES['advertisement_file']['tmp_name']);
$param['original_file_name_big_image'] = to_str($_FILES['advertisement_file']['name']);
$param['original_file_name_small_image'] = $param['original_file_name_big_image'];
$param['use_big_image'] = true;
$param['max_width_big_image'] = to_int($max_width_big_image);
$param['max_height_big_image'] = to_int($max_height_big_image);
$param['max_width_small_image'] = to_int($max_width_small_image);
$param['max_height_small_image'] = to_int($max_height_small_image);
$param['used_watermark_big_image'] = false;
$param['used_watermark_small_image'] = false;
$param['isset_big_image'] = false;
$param['item_id'] = to_int($_POST['advertisement_id']);
$param['site_users_id'] = to_int($site_user_id);
$add_advertisement_id = $shop->InsertItem($param);
if ($add_advertisement_id)
{
// Получаем информацию об объявлении
$item_row = $shop->GetItem($add_advertisement_id);
if ($item_row)
{
// Получаем информацию о дополнительных свойствах объявления
$fields_res = $shop->GetPropertiesOfGroup($item_row['shop_groups_id'], $add_advertisement_id);
$form_field = array();
if ($fields_res)
{
$i = 0;
// Формируем массив полей для формы редактирования объявления
foreach ($fields_res as $key => $properties_id)
{
// Получаем значение доп.свойства
$properties = $shop-> GetValueItemProperty($add_advertisement_id, $properties_id);
$fields_row[$i]['shop_properties_items_value'] = $properties['shop_properties_items_value'];
// Получаем информацию о доп.свойстве
$properties_info = $shop->GetPropretyOfItems($properties_id);
$fields_row[$i]['shop_list_of_properties_id'] = $properties_info['shop_list_of_properties_id'];
$fields_row[$i]['shop_list_of_properties_type'] = $properties_info['shop_list_of_properties_type'];
$fields_row[$i]['shop_list_of_properties_name'] = $properties_info['shop_list_of_properties_name'];
$fields_row[$i]['shop_list_of_properties_xml_name'] = $properties_info['shop_list_of_properties_xml_name'];
$fields_row[$i]['lists_id'] = $properties_info['lists_id'];
$i++;
}
if ($fields_row)
{
$i = 0;
$form_field = array();
// Добавляем Дату и время добавления объявления
$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'] = $_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'] = $_POST['advertisement_phone'];
$shop->InsertPropertiesItem($param);
$param = array();
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = 385;
$param['shop_properties_items_value'] = $_POST['advertisement_email'];
$shop->InsertPropertiesItem($param);
// Обновляем доп.свойства
foreach ($fields_row as $key => $properties)
{
if ($properties['shop_list_of_properties_id'] != 61
&& $properties['shop_list_of_properties_id'] != 4
&& $properties['shop_list_of_properties_id'] != 5
&& $properties['shop_list_of_properties_id'] != 385
&& $properties['shop_list_of_properties_id'] != 6)
{
if (isset($_POST[$properties['shop_list_of_properties_xml_name']])
|| (isset($_FILES[$properties['shop_list_of_properties_xml_name']]['name']) && $_FILES[$properties['shop_list_of_properties_xml_name']]['size'] > 0))
{
if (isset($_POST[$properties['shop_list_of_properties_xml_name']]))
{
// Доп. свойство - не флажок и не список
if ($properties['shop_list_of_properties_type'] != 7 && $properties['shop_list_of_properties_type'] != 2)
{
$property_value = strip_tags(to_str($_POST[$properties['shop_list_of_properties_xml_name']]));
}
// Доп. свойство - флажок
elseif ($properties['shop_list_of_properties_type'] == 7)
{
$property_value = 1;
}
// Доп. свойство - список
elseif ($properties['shop_list_of_properties_type'] == 2)
{
$property_value = to_int($_POST[$properties['shop_list_of_properties_xml_name']]);
}
$shop_properties_items_value_small = '';
$shop_properties_items_file = '';
$shop_properties_items_file_small = '';
}
else // Доп. свойство - файл
{
$item_dir_path = CMS_FOLDER . UPLOADDIR . 'shop_' . $shop_id . '/item_catalog_' . $add_advertisement_id;
$kernel = & singleton('kernel');
$ext = $kernel->GetExtension($_FILES[$properties['shop_list_of_properties_xml_name']]['name']);
if ($ext != '')
{
$ext = '.' . $ext;
}
$property_big_file = $item_dir_path . '/shop_property_file_' . $add_advertisement_id . '_' . $properties['shop_list_of_properties_id'] . $ext;
$property_small_file = $item_dir_path . '/small_shop_property_file_' . $add_advertisement_id . '_' . $properties['shop_list_of_properties_id'] . $ext;
$param_load_files = array();
$param_load_files['path_source_big_image'] = $_FILES[$properties['shop_list_of_properties_xml_name']]['tmp_name'];
$param_load_files['path_source_small_image'] = '';
$param_load_files['original_file_name_big_image'] = to_str($_FILES[$properties['shop_list_of_properties_xml_name']]['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($max_width_big_image);
$param_load_files['max_height_big_image'] = to_int($max_height_big_image);
$param_load_files['max_width_small_image'] = to_int($max_width_small_image);
$param_load_files['max_height_small_image'] = to_int($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'] = $properties['shop_list_of_properties_id'];
$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);
}
elseif(!isset($_POST[$properties['shop_list_of_properties_xml_name']]) && $properties['shop_list_of_properties_type'] == 7)
{
$property_value = 0;
$param['shop_items_catalog_item_id'] = $add_advertisement_id;
$param['shop_list_of_properties_id'] = $properties['shop_list_of_properties_id'];
$param['shop_properties_items_value'] = $property_value;
$shop->InsertPropertiesItem($param);
}
}
}
}
}
$path = "./";
$time = 5; // секунд
?>
<h1>Редактирование объявления</h1>
<p>Объявление успешно отредактировано. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
}
// Обработка удаления объявления
elseif (isset($_REQUEST['delete_advertisement_id']) && to_int($_REQUEST['delete_advertisement_id']) > 0)
{
$advertisement_id = to_int($_REQUEST['delete_advertisement_id']);
// Получаем информацию об объявлении
$item_row = $shop->GetItem($advertisement_id);
// Если объявление принадлежит пользователю
if ($item_row && $item_row['site_users_id'] && $item_row['site_users_id'] == $site_user_id)
{
// Удаляем объявление
$delete_result = $shop->DeleteItem($advertisement_id);
if ($delete_result)
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление успешно удалено. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
else
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление не удалено. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
else
{
$path = "./";
$time = 5; // секунд
?>
<h1>Удаление объявления</h1>
<p>Объявление не удалено. У Вас нет прав на удаление данного объявления. Через <?php echo $time?> секунд Вы вернетесь к списку Ваших объявлений.</p>
<p>Если Вы не хотите ждать, перейдите по <a href="<?php echo $path?>">ссылке</a>.</p>
<script language="JavaScript" type="text/javascript">
<!--
function set_location()
{
location="<?php echo $path?>";
}
setTimeout('set_location()', <?php echo $time * 1000?>);
//-->
</script>
<?php
}
}
else
{
// Число элементов на страницу
if (isset($GLOBALS['ShopResult']['advertisement_on_page']))
{
if ($GLOBALS['ShopResult']['advertisement_on_page'] !== true)
{
$property['advertisement_on_page'] = to_int($GLOBALS['ShopResult']['advertisement_on_page']);
}
}
else
{
$property['advertisement_on_page'] = 10;
}
// Номер объявления, с которого начинается показ
if (isset($GLOBALS['ShopResult']['advertisement_begin']))
{
$property['advertisement_begin'] = to_int($GLOBALS['ShopResult']['advertisement_begin']);
}
else
{
$property['advertisement_begin'] = 0;
}
// Отображаем
$site_id = CURRENT_SITE;
$external_propertys['url'] = $GLOBALS['ShopResult']['url'];
// Отображаем только те элементы, которые принадлежат пользователю сайта
$element = array();
$element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
$element['prefix'] = 'and'; // префикс
$element['name'] = 'site_users_id'; // ID дополнительного св-ва, указывается если тип = 1
$element['if'] = '='; // Условие
$element['value'] = $site_user_id;
$element['sufix'] = '';
$property['select'][] = $element;
$property['current_group_id'] = false;
$property['items_on_page'] = $GLOBALS['ShopResult']['item_on_page'];
$property['current_page'] = $GLOBALS['ShopResult']['current_page'];
$property['items_begin'] = $GLOBALS['ShopResult']['item_begin'];
$property['show_catalog_item_type'] = array('active', 'inactive');
$property['cache'] = false;
// Отображаем список объявлений
$shop->ShowShop($GLOBALS['ShopResult']['shop_id'], $xsl_catalog, $property, $external_propertys);
}
}
else
{
?>
<h1>Магазин с идентификатором <?php echo $shop_id ?> не найден!</h1>
<?php
return ;
}
?>
Не проверял, так что может еще чего-то упустил, ХЗ.
Заказов не беру. Консультирую редко.
нет...если мы явно задаём магазин с ID=7 то следующие строки надо как то модифицировать....
Авторизация