Solution Technologies
Управление сайтом без ограничений
<?php
/**
 * XS2:
 *
 * This file is developed by Solutecs, LLC for the purpose of the company
 * and is provided together with XS2 Framework as and inherent part of the
 * system. This file can be used on the terms of License Agreement.
 *
 * +7 (495) 585-0833 / 13 Rusakovskaya street, Moscow 107140 Russia
 *
 * @link http://www.solutecs.com
 * @copyright ©1998-2007 Solutecs, LLC
 * @package XS2-MODCOM
 * @subpackage proc-shop
 * @version 1.XX
 */



if(!$_THE['PARAMS'][1]) {
  // Пустой запрос
  header('location: '.xs2Href(array('mod'=>$_THE['QUE']['MOD'],
                                    'obj'=>'categories',
                                    'met'=>'show')));
  exit();
}

$query = array();
// Разбираем запрос
foreach($_THE['PARAMS'] as $_i=>$_p) {
  if($_i) {
    list($_t, $_n) = explode(':', $_p);
    $query[$_t] = $_n;
  }
}

$producers = array($query['producer']);
// Формируем условие

if($query['country']) {
  if($countries =  xs2GetLinks(array('NType'=>'producer',
                                     'field'=>'Country',
                                     'NodId'=>$query['country'])))
    $producers[] = $countries[0]['NodId'];
}

$producers = array_filter($producers);
if($query['ParId']) {
  $path = array_map('node2NodId',
                    xs2GetKnee(array('NType'=>'category',
                                     'NodId'=>$query['ParId'])));
  $path[] = $query['ParId'];
}

// Отбираем подходящие объекты
$found = array_filter(xs2GetNodes(array('NType'=>'item')), 'criteria');

$_HTML->assign('found', $found);

function criteria($node) {
  // Проверяет узел на соответствие условию
  global $producers, $path, $query;
  if(count($producers) && !in_array($node['Producer'][0]['NodId'], $producers))
    return false; // Производитель (в т.ч. страна) не подходят

  if(($query['producer'] || $query['country']) && !count($producers))
    return false; // Производитель или страна не найдены

  if($query['ParId'] && !in_array($node['ParId'], $path))
    return false; // Не подходит раздел
  return true;
}

// Выделяет идентификатор узла
function node2NodId($node) {
  return $node['NodId'];
}

?>
Copyright ©1998-2008 Солютекс. Все права защищены.
Этот сайт сделан в designLab | Работает на технологии XS2
Условия использования | О защите конфиденциальности