config_load($lang_file, 'lang'); $AVE_Template->assign('config_vars', $AVE_Template->get_config_vars()); $AVE_Template->config_load($lang_file, 'admin'); switch ($action) { case 'edit': $items = array(); $items = @unserialize($field_value); if($items != false){ foreach($items as $k => $v){ $list_item = explode('|', $v); $list[$k]['param'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : ''; $list[$k]['value'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : ''; } $items = $list; } $tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin', $_tpl); $AVE_Template->assign('doc_id', (isset($_REQUEST['Id'])) ? $_REQUEST['Id'] : 0); $AVE_Template->assign('items', $items); $AVE_Template->assign('field_dir', $fld_name); $AVE_Template->assign('field_id', $field_id); return $AVE_Template->fetch($tpl_file); case 'save': foreach ($field_value as $v) { if(! empty($v['value']) && ! empty($v['param'])) { $field_value_new[] = $v['param'] . ($v['value'] ? '|' . $v['value'] : ''); } } if (isset($field_value_new)) { return @serialize($field_value_new); } else { return $field_value_new = ''; } break; case 'doc': $items = (isset($field_value)) ? @unserialize($field_value) : array(); $res = array(); if ($items != false) { foreach($items as $item) { $item = explode('|', $item); if (isset($item[1]) && $item[1]) $res[] = showteaser($item[1]); } } return (! empty($res)) ? implode(PHP_EOL, $res) : $tpl; break; case 'req': return get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty); case 'api' : if (! empty($field_value)) return @unserialize($field_value); return $field_value; break; case 'name' : return $AVE_Template->get_config_vars('name'); break; case 'search': if (!isset($_REQUEST['q']) || !isset($_REQUEST['rubric_id'])) { echo json_encode([]); exit; } $search_query = addslashes($_REQUEST['q']); $rubric_id = (int)$_REQUEST['rubric_id']; $field_default = explode(',', $default); $use_field_0 = isset($field_default[0]) && (int)$field_default[0]; $use_field_1 = isset($field_default[1]) && (int)$field_default[1]; $zap_1 = ($use_field_0 || $use_field_1) ? ',' : ''; $zap_2 = ($use_field_0 && $use_field_1) ? ',' : ''; $select_fields = []; if ($use_field_0) { $select_fields[] = 'b.field_value as b1'; } if ($use_field_1) { $select_fields[] = 'c.field_value as c1'; } $select_clause = (!empty($select_fields)) ? ',' . implode(',', $select_fields) : ''; $from_fields = []; if ($use_field_0) { $from_fields[] = PREFIX . '_document_fields b'; } if ($use_field_1) { $from_fields[] = PREFIX . '_document_fields c'; } $from_clause = (!empty($from_fields)) ? ',' . implode(',', $from_fields) : ''; $search_1 = ($use_field_0) ? "AND (b.document_id=a.Id AND b.rubric_field_id = " . (int)$field_default[0] . ")" : ''; $search_2 = ($use_field_1) ? "AND (c.document_id=a.Id AND c.rubric_field_id = " . (int)$field_default[1] . ")" : ''; $or_1 = ($use_field_0) ? "OR (UPPER(b.field_value) LIKE UPPER('%" . $search_query . "%'))" : ''; $or_2 = ($use_field_1) ? "OR (UPPER(c.field_value) LIKE UPPER('%" . $search_query . "%'))" : ''; $sql = $AVE_DB->Query(" SELECT a.Id, a.document_title {$select_clause} FROM " . PREFIX . "_documents a {$from_clause} WHERE /* a.rubric_id = '" . $rubric_id . "' AND */ a.document_status = 1 " . $search_1 . " " . $search_2 . " AND ( (UPPER(document_title) LIKE UPPER('%" . $search_query . "%')) " . $or_1 . " " . $or_2 . " ) GROUP BY a.Id LIMIT 0,5 "); $doc_finded = array(); while ($row = $sql->FetchRow()) { $doc_finded[] = array( 'doc_id' => $row->Id, 'doc_title' => $row->document_title, 'doc_name' => (($use_field_0) ? (isset($row->b1) ? $row->b1 : '') : $row->document_title), 'doc_article' => (($use_field_1) ? (isset($row->c1) ? $row->c1 : '') : '') ); } echo json_encode($doc_finded); exit; default: return $field_value; } return ($res ? $res : $field_value); } ?>