/** * Retorna o nome completo do helper. * * @param string $helper * @throws HelperException * */ private static function _namespace($helper) { $fileHelper = "{$helper}.php"; foreach (self::$_helperNamespace as $namespace) { $filename = self::realpathFromNamespace($namespace) . $fileHelper; if (is_file($filename)) { return $namespace . $helper; } } HelperException::throwsExceptionIfParamIsNull(FALSE, sprintf(self::T_HELPER_STR_HELPER_UNAVAILABLE, $helper)); // @codeCoverageIgnoreStart }
/** * Cria lista selectOptions. * * <p> * <b>array <i>$dataSource</i></b> referenciando uma lista de string, $metaInfo deverá conter as chaves * dos dados que serão utilizados. * * quando informado uma lista de valores em formato string <b>obrigatoriamente</b> * deverá haver as duas entradas informadas pelo param <i>$metaInfo</i>. * </p> * <p> * <b>ValueObject <i>$dataSource</i></b> referenciado uma lista de ValueObject, $metaInfo deverá conter os nomes * dos métodos acessores. * </p> * @code * <?php * # define lista de array que sera usado para definir o combo * $arrCombo = array( * array('value' => 1, 'text' => 'primeiro valor'), * array('value' => 2, 'text' => 'segundo valor'), * array('value' => 3, 'text' => 'terceiro valor'), * ); * * comboOptions::comboOptions( * # define a fonte de dados * $arrCombo, * * # define as propriedades do texto * array('value', 'text'), * * # texto para exibicao na primeira opcao * 'seleciona uma opção', * * # define qual options ficar selecionado por padrao * 1 * ); * * ?> * @encode * * @param string[]|valueObject[] $dataSource * @param string[value, value] $metaInfo * @param string[value, value] $defaultTitle * @param mixed $selectedValue * @return string * @throws HelperException * */ public function comboOptions($dataSource, $metaInfo, $defaultTitle = NULL, $selectedValue = NULL) { try { # lista de options $options = array(); # conteudo dos options quando preenchido por um valueObject[] $data = array(); # verifica se as e if (TRUE != is_array($defaultTitle)) { $defaultTitle = array('value' => '', 'text' => $defaultTitle); $options[] = self::_options($defaultTitle, array('value', 'text'), $selectedValue); } foreach ($dataSource as $obj) { if ($obj instanceof ValueObjectAbstract) { $data['value'] = $obj->{$metaInfo}[0](); $data['text'] = $obj->{$metaInfo}[1](); $options[] = self::_options($data, array('value', 'text'), $selectedValue); } else { $options[] = self::_options($obj, $metaInfo, $selectedValue); } } return implode("\n", $options); } catch (\Exception $excp) { throw HelperException::throwsExceptionIfParamIsNull('', self::HELPER_EXCEPTION); } }