Пример #1
0
 //Массив позиций
 Catalog::search($md, $ans);
 $conf = infra_config();
 //BREADCRUMBS TITLE
 if (!$md['group'] && $md['producer'] && sizeof($md['producer']) == 1) {
     //ПРОИЗВОДИТЕЛЬ
     if ($md['producer']) {
         foreach ($md['producer'] as $producer => $v) {
             break;
         }
     } else {
         $producer = false;
     }
     //is!, descr!, text!, name!, breadcrumbs!
     $ans['is'] = 'producer';
     $name = Catalog::getProducer($producer);
     $ans['name'] = $name;
     $ans['title'] = $name;
     $conf = infra_config();
     $ans['breadcrumbs'][] = array('title' => $conf['catalog']['title'], 'add' => 'producer:');
     $menu = infra_loadJSON('*catalog/menu.json');
     $ans['breadcrumbs'][] = array('href' => 'producers', 'title' => $menu['producers']['title']);
     $ans['breadcrumbs'][] = array('add' => 'producer::producer.' . $name . ':1', 'title' => $name);
 } else {
     if (!$md['group'] && $md['search']) {
         $ans['is'] = 'search';
         $ans['name'] = $md['search'];
         $ans['title'] = infra_forFs($md['search']);
         $conf = infra_config();
         $ans['breadcrumbs'][] = array('title' => $conf['catalog']['title'], 'add' => 'search:');
         $menu = infra_loadJSON('*catalog/menu.json');
Пример #2
0
 public static function markData(&$md)
 {
     if (isset($md['sort'])) {
         $md['sort'] = (string) $md['sort'];
         // price, name, def, group, producer
         if (!in_array($md['sort'], array('name', 'group', 'producer', 'change', 'cost'))) {
             unset($md['sort']);
         }
     }
     if (isset($md['search'])) {
         $md['search'] = (string) $md['search'];
         $md['search'] = trim($md['search']);
         $ar = preg_split('/[\\s,]+/', $md['search']);
         $res = array();
         foreach ($ar as $k => $v) {
             if ($v == '') {
                 continue;
             }
             $res[] = $v;
         }
         if ($res) {
             $md['search'] = implode(' ', $res);
         } else {
             unset($md['search']);
         }
     }
     if (isset($md['producer'])) {
         if (!is_array($md['producer'])) {
             $md['producer'] = array();
         }
         $md['producer'] = array_filter($md['producer']);
         $producers = array_keys($md['producer']);
         $producers = array_filter($producers, function (&$value) {
             if (in_array($value, array('yes', 'no'))) {
                 return true;
             }
             if (Catalog::getProducer($value)) {
                 return true;
             }
             return false;
         });
         $md['producer'] = array_fill_keys($producers, 1);
         if (!$md['producer']) {
             unset($md['producer']);
         }
     }
     if (isset($md['group'])) {
         if (!is_array($md['group'])) {
             $md['group'] = array();
         }
         $md['group'] = array_filter($md['group']);
         $groups = array_keys($md['group']);
         $groups = array_filter($groups, function (&$value) {
             if (in_array($value, array('yes', 'no'))) {
                 return true;
             }
             if (!Catalog::getGroup($value)) {
                 return false;
             }
             return true;
         });
         $md['group'] = array_fill_keys($groups, 1);
         if (!$md['group']) {
             unset($md['group']);
         }
     }
     if (isset($md['reverse'])) {
         $md['reverse'] = (bool) $md['reverse'];
         if (!$md['reverse']) {
             unset($md['reverse']);
         }
     }
     if (isset($md['count'])) {
         $md['count'] = (int) $md['count'];
         if ($md['count'] < 1) {
             unset($md['count']);
         }
         if ($md['count'] > 1000) {
             unset($md['count']);
         }
     }
     $name = 'cost';
     if (isset($md[$name])) {
         if (!is_array($md[$name])) {
             $md[$name] = array();
         }
         $md[$name] = array_filter($md[$name]);
         //Удаляет false значения
         $values = array_keys($md[$name]);
         $values = array_filter($values, function (&$val) {
             if (in_array($value, array('yes', 'no'))) {
                 return true;
             }
             if (!$val) {
                 return false;
             }
             return true;
         });
         $md[$name] = array_fill_keys($values, 1);
         if (!$md[$name]) {
             unset($md[$name]);
         }
     }
     if (isset($md['more'])) {
         if (!is_array($md['more'])) {
             unset($md['more']);
         } else {
             foreach ($md['more'] as $k => $v) {
                 if (!is_array($v)) {
                     unset($md['more'][$k]);
                 } else {
                     foreach ($v as $kk => $vv) {
                         if (!$vv) {
                             unset($md['more'][$k][$kk]);
                         }
                     }
                     if (!$md['more'][$k]) {
                         unset($md['more'][$k]);
                     }
                 }
             }
             if (!$md['more']) {
                 unset($md['more']);
             }
         }
     }
     Extend::markData($md);
 }