Пример #1
0
 function createData()
 {
     $sections = array();
     A::$DB->query("SELECT * FROM " . DOMAIN . "_sections WHERE module='shoplite' OR module='catalog' ORDER BY sort");
     while ($row = A::$DB->fetchRow()) {
         $_section = DOMAIN . "_" . $row['lang'] . "_" . $row['name'];
         if (getFields($_section)) {
             $sections[$_section] = $row['caption'];
         }
     }
     A::$DB->free();
     $this->Assign("sections", $sections);
     if (!empty($_GET['section'])) {
         $_section = preg_replace("/[^a-zA-Z0-9_-]/i", "", $_GET['section']);
         if (isset($sections[$_section])) {
             $section = $_section;
             setcookie(STRUCTURE, $_GET['section'], time() + 31104000);
         }
     }
     if (empty($section)) {
         $section = preg_replace("/[^a-zA-Z0-9_-]/i", "", A_Session::get(STRUCTURE, isset($_COOKIE[STRUCTURE]) ? $_COOKIE[STRUCTURE] : key($sections)));
     }
     A_Session::set(STRUCTURE, $section);
     $this->Assign("section", $section);
     if (empty($section)) {
         return;
     }
     $categories = A::$DB->getAll("SELECT id,idker,name FROM {$section}_categories ORDER BY level,sort");
     $this->Assign("categories", $categories);
     $idcat = !empty($_GET['idcat']) ? (int) $_GET['idcat'] : 0;
     $_cfields = getTextOption(STRUCTURE, 'cfields');
     $_cfields = !empty($_cfields) ? unserialize($_cfields) : array();
     if (!isset($_cfields[$section])) {
         $_cfields[$section] = $_cfields;
     }
     $_cfields = !empty($_cfields[$section][$idcat]) ? $_cfields[$section][$idcat] : array();
     $cfields = cfields_getfields($idcat, $section);
     foreach ($cfields as $field => $value) {
         if (in_array($field, $_cfields)) {
             unset($cfields[$field]);
         }
     }
     $fields = array();
     A::$DB->query("SELECT * FROM " . DOMAIN . "_fields WHERE item='{$section}' ORDER BY sort");
     while ($row = A::$DB->fetchRow()) {
         $row['disabled'] = isset($cfields[$row['field']]);
         $row['checked'] = in_array($row['field'], $_cfields) || $row['disabled'];
         $row['caption'] = $row['name_' . LANG];
         $fields[] = $row;
     }
     A::$DB->free();
     $this->Assign("fields", $fields);
 }
Пример #2
0
function cfields_ShowBlock($block, $data)
{
    if ($block == 'shoplite_filters') {
        $section = MODULE == 'shoplite' ? SECTION : getSectionByModule('shoplite');
        $idcat = MODULE == 'shoplite' ? A::$MAINFRAME->idcat : 0;
        $fields = getFields($section);
        $_fields = cfields_getfields($idcat, $section);
        $filters = $data['object']->get_template_vars('filters');
        foreach ($filters as $i => $filter) {
            if (isset($fields[$filter['field']]) && !isset($_fields[$filter['field']])) {
                unset($filters[$i]);
            }
        }
        $data['object']->Assign("filters", array_values($filters));
    }
}