1, 'style' => "width: 200px" ); $extractParams = array( 'name', 'ajaxClass', 'ajaxMethod', 'methodParam', 'minLength', 'idValue', 'textValue', 'style' ); /* verifica se todos os parâmetros obrigatórios foram passados */ foreach ($requiredParams as $required) if (!array_key_exists($required, $params) || (empty($params[$required]))) $smarty->trigger_error("[wf_autocomplete_input] missing required parameter(s): $required", E_USER_ERROR); /* atribui valores default para os parâmetros não passados */ foreach ($defaultValues as $key => $value) if (!isset($params[$key])) $params[$key] = $value; /* extrai alguns parâmetros da matriz de parâmetros */ foreach ($extractParams as $extract) $$extract = $params[$extract]; /* parâmetros extras são "acumulados" em uma única variável */ $extraParams = array(); foreach ($params as $key => $value_params) if (!in_array($key, $extractParams)) $extraParams[$key] = $value_params; $name_input = 'input' . $name; $name_list = 'list' . $name; $name_response = 'response' . $name; /* se parâmetro for um array "joga" para o javascript como um objeto JSON */ if (is_array($methodParam)){ $methodParam = json_encode($methodParam); } else { $sep = "'"; // se não for um objeto passa parâmetro entre aspas } /* Cria um objeto JSON com os parâmetros opcionais utilizados pelo javascript */ $extraParams = array ('idValue' => $idValue , 'textValue' => $textValue , 'minLength' => $minLength ); $extraParams = json_encode($extraParams); $output = << EOF; return $output; } ?>