Архив для инфосистем

#
Re: Архив для инфосистем
объясняю. есть календарь. сегодня например 12 сентября. человек зайдя на сайт выбирает раздел "Рестораны" и в календаре выбирает 14-е сентября (воскресенье) - результатом этих действий должен быть показ скидок в различных ресторанах на 14-е сентября. Вот.
Делаем лучшее
#
Re: Архив для инфосистем
speedy, повторюсь: используйте «Дата публикации» и «Дата завершения публикации». В магазине создаете требуемые купоны(по сути товары). Если один из них будет действовать 14 сентября, например, то вы ставите ему эту дату(14 сентября 2008) в обоих полях: и в «Дата публикации», и в «Дата завершения публикации». Когда посетитель сайта сегодня(12 сентября) выберет в календаре дату 14 сентября, то в метод показа купонов(ShowShop) вы передадите конструктор запроса с выбранной датой, например:
$element = array();
$element['type']= 0;
$element['prefix'] = 'and';
$element['name'] = 'shop_items_catalog_putoff_date';
$element['if'] = '=';
$element['value'] = quote_smart(to_str($_POST['date1']));
$element['sufix'] = '';
$param['select'][]=$element;

Здесь $_POST['date1'] — значение даты, отправленное формой
#
Re: Архив для инфосистем
Спасибо! Это уже что-то.

А как это вписать сюда?

<?
if (class_exists('shop'))
{
$shop = & singleton('shop');
$shop_id = 1;
$shop->ShowShop($shop_id, 'МагазинГруппыНаГлавной');
}
?>   


Просто я не очень силен в АПИ. Но движок понравился поэтому хочу работать с ним далее.

Еще вопрос.
А если товар действует 3 дня? как тогда описать?
Делаем лучшее
#
Re: Архив для инфосистем
Понимаю что пятница )) и день программиста. Поздравляю всех!
Но большая слезная просьбы. помогите.
Делаем лучшее
Модератор
#
Re: Архив для инфосистем
<?
if (class_exists('shop'))
{
   $shop = & singleton('shop');
   $shop_id = 1;

   if (isset($_POST['date1']))
   {
      $element = array();
      $element['type']= 0;
      $element['prefix'] = 'and';
      $element['name'] = 'shop_items_catalog_putoff_date';
      $element['if'] = '=';
      $element['value'] = quote_smart(to_str($_POST['date1']));
      $element['sufix'] = '';
      $param['select'][]=$element;
   }


   $shop->ShowShop($shop_id, 'МагазинГруппыНаГлавной', $param);
}
?>


указанный код только для того, если купон живет ОДИН день. у вас он несколько дней живет?
#
Re: Архив для инфосистем
да, он может жить как один так и пять дней. вот. т.е. есть скидки которые живут например неделю.
Делаем лучшее
Модератор
#
Re: Архив для инфосистем
speedy,
Тогда примерно вот так:
<?
   if (isset($_POST['date1']))
   {
      $date1 = to_str($_POST['date1']);

      // Переведем дату из ДД.ММ.ГГГГ на ГГГГ-ММ-ДД
      $DateClass = new DateClass();
      $date1 = $DateClass->date_format_sql($date1);

      $param = array();
      $param['current_group_id'] = false;

      $element = array();
      $element['type']= 0;
      $element['prefix'] = 'AND';
      $element['name'] = 'shop_items_catalog_putoff_date';
      $element['if'] = '<=';
      $element['value'] = quote_smart($date1).' 00:00:00';
      $element['sufix'] = '';
      $param['select'][]=$element;
      
      $element = array();
      $element['type']= 0;
      $element['prefix'] = 'AND';
      $element['name'] = 'shop_items_catalog_putend_date';
      $element['if'] = '>=';
      $element['value'] = quote_smart($date1).' 23:59:59';
      $element['sufix'] = '';
      $param['select'][]=$element;
      
      $element = array();
      $element['type']= 0;
      $element['prefix'] = 'OR';
      $element['name'] = 'shop_items_catalog_putend_date';
      $element['if'] = '=';
      $element['value'] = '0000-00-00 00:00:00';
      $element['sufix'] = '';
      $param['select'][]=$element;

   $shop->ShowShop($shop_id, 'МагазинКаталогТоваров', $param);

}
?>


Дату необходимо передавать в MySQL формате - ГГГГ-ММ-ДД, если принимаете из формы в человеческом формате, то используйте для преобразования метод date_format_sql() класса DateClass (описание есть в API).
#
Re: Архив для инфосистем
HostCMS писал(а):
Дату необходимо передавать в MySQL формате — ГГГГ-ММ-ДД, если принимаете из формы в человеческом формате, то используйте для преобразования метод date_format_sql () класса DateClass (описание есть в API).


Немножко не понял )
Т.е. передавать надо типа /category/2008-09-14 ?
И вот еще вопрос. если просто человек зайдет в категорию ему покажутся товары на текущую дату при этих условиях?

Огромное спасибо что помогаете и терпите!
Делаем лучшее
Модератор
#
Re: Архив для инфосистем
speedy писал(а):
Немножко не понял)
Т.е. передавать надо типа /category/2008-09-14?

нет, у Вас должна быть форма с полем, в которой вводится дата или календарик используется. Имя этого поля в форме - date1, метод передачи данных формы - POST.
Так вот, если в поле формы дата указывается как 14.09.2008, то необходимо обработать:
<?
if (class_exists('shop'))
{
   $shop = & singleton('shop');
   $shop_id = 1;

   if (isset($_POST['date1']))
   {
      $date1 = to_str($_POST['date1']);

      // Переведем дату из ДД.ММ.ГГГГ на ГГГГ-ММ-ДД
      $DateClass = new DateClass();
      $date1 = $DateClass->date_format_sql($date1);


      $element = array();
      $element['type']= 0;
      $element['prefix'] = 'AND';
      $element['name'] = 'shop_items_catalog_putoff_date';
      $element['if'] = '>';
      $element['value'] = quote_smart($date1');
      $element['sufix'] = '';
      $param['select'][]=$element;
      
      $element = array();
      $element['type']= 0;
      $element['prefix'] = 'AND';
      $element['name'] = 'shop_items_catalog_putend_date';
      $element['if'] = '<';
      $element['value'] = quote_smart($date1');
      $element['sufix'] = '';
      $param['select'][]=$element;
   }

   $shop->ShowShop($shop_id, 'МагазинГруппыНаГлавной', $param);
}
?>


P.S> Поправил пару опечаток
#
Re: Архив для инфосистем
Черт! Огромное вам спасибо!
Делаем лучшее
Авторизация