Mostrar mensagens com a etiqueta Yii. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Yii. Mostrar todas as mensagens

14/02/2014

Framework Yii: Colocar Ancora nos URL (Endereços)

O truque para colocar uma ancora no construtor de links da Framework Yii é definira o parâmetro '#' nos parâmetros GET do construtor de URL:

Exemplos :
Yii::app()->createUrl("/post/update",array("id"=>1,'#'=>'post_content'));
CHtml::link("Update",array("/post/update","id"=>1,'#'=>'post_content'));
Ler mais ...

14/01/2010

Yii : Utilização pratica das Validações (Validators)

A Yii tem uma basta gama de ferramentas que permite validar a correcta introdução de dados por parte do utilizador , fica aqui alguns exemplos partidos da sua utilização:
Verifica se o campo 'nome' é único ou seja não é repetido
array('room', 'unique'), 
Verifica se o campo 'nome' tem no máximo 45 caracteres
array('nome','length','max'=>45),
Verifica se o campo 'nome' e 'morada' estão presentes
array('nome, morada', 'required'),
Valida se o campo 'id_categoria' está presente na tabela 'categoria'(model) no campo 'id'
array('id_categoria','exist','className'=>'categoria','attributeName'=>'id'),
Verifica se o campo 'id_categoria' é um numero inteiro
array('id_categoria', 'numerical', 'integerOnly'=>true), 
Verifica se o campo 'sexo' está alguns dos valores  'M' ou 'F'
array('sexo','in','range'=>array('M','F')), 
Verifica se o campo 'email' tem uma estrutura valida com um Endereço de Correio Electrónico(Email)
array('email','email'), 
Verifica se o campo 'fotografia' é um ficheiro do tipo (jpg, gif, png) sendo que este pode não existir
array('fotografia','file','types'=>'jpg, gif, png','allowEmpty'=>true), 
Quando da verificação o campo 'nib' é chamada a função 'isValidNIB' presente no model
array('nib','isValidNIB'),
function isValidNIB($attribute,$params) 
{    // Em caso de Erro :
$this->addError($attribute,$message); 
} 

Valida se o campo 'data' é do tipo data e com o formato ano(4 dígitos) - mes(2 dígitos) e dia(2 dígitos) 'yyyy-MM-dd'

array('data','type','type'=>'date','dateFormat'=>'yyyy-MM-dd','message'=>' {attribute} tem de ser uma data com o formato aaaa-mm-dd'), 

Informação complementar:


Validators (Versão da Yii) existentes:
  • CBooleanValidator,  (1.0.10)
  • CCaptchaValidator,  (1.0)
  • CCompareValidator,  (1.0)
  • CDefaultValueValidator, (1.0.2)
  • CEmailValidator, (1.0)
  • CExistValidator, (1.0.4)
  • CFileValidator, (1.0)
  • CFilterValidator, (1.0)
  • CInlineValidator, (1.0)
  • CNumberValidator, (1.0)
  • CRangeValidator, (1.0)
  • CRegularExpressionValidator, (1.0)
  • CRequiredValidator, (1.0)
  • CStringValidator, (1.0)
  • CTypeValidator, (1.0)
  • CUniqueValidator, (1.0)
  • CUrlValidator (1.0)
  • Guia de utilização da Yii
  • Cookbook
Ler mais ...

28/12/2009

Framework Yii : Utilizando DropDownList

yii_dropDowList As DropDownList são um dos recursos que mais utilizamos nos formulários e como tal vou mostrar como criar dinamicamente as dropdowList na Framework Yii.
Na framework yii os métodos de criação de elementos de visualização HTML estão na classe estática  CHtml e como tal a  DropDownList não é excepção , se verificar na documentação da yii existem dois métodos para a criação destas listas temos o dropDownList() que permite criar dropdowslist html simples sem associação a model e a activeDropDownList() esta sim associada a um model.
  • CHtml::dropDownList()
public static function dropDownList($name,$select,$data,$htmlOptions=array())
Onde :$name é o nome da lista, $select valor seleccionado ,$data array com os dados do tipo chave valor, $htmlOptions array das opções de Html bem como também definição do texto a mostrar no caso de permitir elemento vazio.
Neste primeiro exemplo é criado uma combobox  com o nome 'Meunome' para escolher o sexo onde $selecionado é o que é apresentado caso seja vazio então mostrado o valor da opção 'empty'  nas opções html.
echo CHtml::dropDownList('Meunome', $selecionado,array('M' => 'Masculino', 'F' => 'Feminino'),array('empty' => 'Escolha o sexo'));

Agora caso queira gerar os valores das opções dinamicamente do seu model tambem o poderá fazer basta recorrer ao método listData devolve uma lista do tipo chave, valor que pode ser usada na dropDownList.

$lista = CHtml::listData($model,'sexo_id', 'sexo_nome');
echo CHtml::dropDownList('Meunome', $selecionado,$lista ,array('empty' => 'Escolha o sexo'));
  • CHtml::activedropDownList()
public static string activeDropDownList(CModel $model, string $attribute, array $data, array $htmlOptions=array ( ))

Neste primeiro exemplo é uma DropDownList simples para escolha do sexo quando do submit deste formulário no atributo sexo via ter um dos 3 possíveis valores M,F ou vazio .

echo CHtml::activeDropDownList($model,'sexo',array('M'=>'Masculino','F'=>'Feminino'),array('empty'=>'Escolha o sexo'))

Este exemplo é um pouco mais complexo mas a grande diferença é que os valores que o nosso atributo ‘tipo_cliente’ pode conter vem da tabela tipo_cliente onde o valor que assume é o id e o que é mostrado é o nome

$lista =CHtml::listData(tipo_cliente::model()->findAll(), 'id', 'nome');
echo CHtml::activeDropDownList($model,'tipo_cliente',$lista,array('empty'=>'Escolha o tipo de cliente')); 
  • Listas dropDown dependentes
E para concluir só dar uma visão geral como construir DropDownList  desdentes ou seja os valores de uma dependa da selecção da outra:
Criamos a nossa dropDownList e nas opções de html vamos inserir a chave ‘ajax’ as opções desta chave são as mesma do jquery pois a yii vai  gerar código jquery , no nosso caso vai fazer um pedido ao nosso controlo e este irá devolver as opções da lista a actualizar  que actualizará as opções dessa lista.

echo CHtml::dropDownList('pais_id','', array(1=>'PORTUGAL',2=>'BRASIL',3=>'ANGOLA'),
array(
'ajax' => array(
'type'=>'POST', //Tipo de pedidos outra alternativa GET
'url'=>'cidadesDinaminas', //url para chamar
'update'=>'#cidade_id', // Selector jquery da combo a actualizar)));

//dropDownList a ser actualizada
echo CHtml::dropDownList('cidade_id','', array());

// metodo do controlo que será chamado
public function actionCidadesDinaminas() 
{ 
$data=Location::model()->findAll('parent_id=:parent_id',array(':parent_id'=>(int) $_POST['pais_id']));     $data=CHtml::listData($data,'id','nome'); 
foreach($data as $value=>$nome) 
{ 
echo CHtml::tag('option',array('value'=>$value),CHtml::encode($nome),true); 
}
}

Recursos complementares:
Ler mais ...

01/12/2009

Utilizar Jquery inteno da Yii na sua aplicação

Sempre que tiver necessidade de utilizar o jquery na Yii deve apenas registar o jquery que a Yii disponibiliza de raiz evitando possiveis problemas, basta para isso incluir o seguinte código na sua aplicação Yii:
Yii::app()->clientScript->registerCoreScript('jquery');
Mais informações:
Ler mais ...

25/11/2009

Crie a sua primeira aplicação Yii no XAMPP

yii_exemplo Pois bem hoje vou mostrar como é facil e rapido construir uma aplicação na framework yii , neste toturial vou utilizar a distribuição XAMPP mas vão reparar que pode adapatar facilmente ao seu servidor ,outra nota que quero deixar é que o tutorial é orientado para o Windows mas poderá utilizar outro sistema operativo como o  Linux ou o MAC.OS.
O primeiro passo é mesmo descarregar a framework  e colocar a framework na pasta do servidor .

Ler mais ...

30/10/2009

Framework PHP Yii

clip_image001

 

 

A Yii é uma framework PHP focada no desenvolvimento de aplicações "WEB 2" destacando-se pelo seu excelente desempenho.

Licença
Requisitos
Funcionalidades
  • Adopta o modelo MVC (Model-View-Controller) que consiste numa técnica de programação separando a lógica de funcionamento da maneira como ela e apresentada

  • Database Access Objects (DAO) e Active Record: Yii permite ao programador desenvolver um modelo de dados na perspectiva de objectos e desta forma evitar a criação de comandos SQL longos e repetitivos.

  • Integração com jQuery: jQuery é um dos mais populares Framework javascript e permite a criação de interfaces Javascript eficientes e versáteis.

  • Formulários de introdução de dados e sua validação: Yii permite facilmente e seguro recolher dados dos formulários e fazer a sua validação, também pode proporcionar ajuda na indicação de erros através de widgets.

  • Web 2.0 widgets: disponibilizado pelo jQuery, Yii vem com muita Web 2.0 widgets tais como campos de auto-complete, treeview entre outros.

  • Autenticação e autorização: Yii tem incorporado o suporte de autenticação. Também suporta a autorização hierárquica por via regras de acesso

  • Temas: possibilita a alteração do aspecto que qualquer aplicação Yii é criada

  • Web services: Yii suporta a geração automática de serviços Web complexos (WSDL) como suas especificação e pedidos dos mesmos.

  • Internacionalização (I18N) e localização (L10N): Yii suporta a transacção de massagens, formatação de data, horas, números bem como os dados são mostrados nas várias localizações.

  • Esquemas de camadas para cache: Yii suporta cache de dados, paginas bem como cache fragmentada e cache dinâmica. A cache (media) que é armazenada pode ser facilmente alterados sem ter necessidade que alterar o código da aplicação.

  • Captura de erros e logs ; os erros podem ser capturados e apresentados ,as menagens de logs podem ser cauterizadas ,filtradas e enviadas para diferentes destinos.

  • Segurança: Yii é equipado com vários mecanismos de segurança para prevenir ataques Web .Entre estes estão incluídos a prevenção de cross-site scripting (XSS) , cross-site request forgery (CSRF) entre outros.

  • O código XHTML gerado é compatível com os standards do mesmo.

  • Geração automática de código: Yii provisiona ferramentas para geração automática de código, como “esqueletos” de aplicações como sistemas de CRUD (Criação, apresentação, Alteração e Remoção)

  • Totalmente orientada a objectos: todos os scripts Yii são orientados a objectos .Esta framework não define nenhuma variável ou função global .A hierarquia de classes permite a sua máxima reutilização e personalização das mesmas.

  • Integração amigável de códigos de outras framework’s ou bibliotecas como PEAR ou Zend Framework.

  • Documentação detalhada e simples com pequenos exemplos.

Ler mais ...