Pages

Subscribe:

Ads 468x60px

Labels

19/02/2014

Site para uso de várias fotos e imagens tematicas variadas

Neste post do site abaixo segue uma relação de sites que disponibilizaram muitas fotos para se usar em diferentes projetos:

Um abraço e até logo!

11/02/2014

Personalizar Mensagens “setFlash” no CakePHP

Olá,  estive com uma dificuldade de entender como modificava as mensagens de erro e sucesso padrão do CakePHP e achei um interessante tutorial:







Como achei muito útil para mim gostaria de compartilhar este tutorial:

1º Passo:
 
Criar arquivo: /app/views/elements/flash-sucesso.ctp
<div class="flash-sucesso">
“O cadastro foi concluído com sucesso!”
</div>


2º Passo:
 
Criar arquivo: /app/views/elements/flash-erro.ctp
<div class="flash-erro">
“Não foi possível salvar. Tente novamente.”
</div>


ALTERANDO O CONTROLLER

Devemos agora alterar o controller para chamar os arquivos que criamos na pasta “views/elements/”.
//CONTROLLER
$this->Session->setFlash(‘’, ‘flash-sucesso’);
//ou
$this->Session->setFlash(‘’, ‘flash-erro’);


CRIANDO O CSS
 
Criar arquivo: /app/webroot/css/css-styles.css
.flash-sucesso {
background: #e5f2be;
border:2px solid #bedf5d;
padding:10px;
font-weight:bold;
}
.flash-erro {
background: #eccecf;
border:2px solid #9e0b0f;
padding:10px;
font-weight:bold;
}


Não, eu não criei o código css acima, apenas dei um CTRL C + CTRL V para facilitar a minha vida e a de vocês. Sejamos práticos galera! Rsrs.
Pronto! Basicamente é isto. Simples, não é?
É claro que vocês podem ainda criar “n” situações com o setFlash. Vocês podem implementar funcionalidades com o jQuery, tais como: criar um botão “fechar” dentro da mensagem, fazer com que a mensagem suma depois de alguns segundos, etc. Isso vai depender do conhecimento, da criatividade e da preguiça de cada um. =D
Espero que tenham gostado.
Abraços e até a próxima!


http://mytechnews.com.br/blog/?p=64

10/02/2014

TRABALHANDO COM O CAKEPHP E O USO DE JOIN


Entre os framaworks de desenvolvimento ágil e rápido de aplicações em linguagem PHP, temos o CakePHP.  Criado e mantido pelo desenvolvedor  Garrett Woodworth (aproximadamente em 2009).  Possui uma excelente estrutura contendo todos os padrões de separação de camadas do MVC e boas práticas de programação.  Sua documentação e colaboração em sua comunidade tem animado mais e mais a multiplicar seus novos adeptos a este framework.

Vou tratar de deixar registrado um recurso para quem já iniciou seus projetos com o CakePHP ou pretende iniciar, que trata sobre o uso de JOINS numa consulta que retorna uma paginação de resultados vindo de 2 ou mais tabelas de um banco relacional MySQL.
Observe que neste exemplo temos na linha 43 a parametrização do recursive como -1, para que o JOIN desta consulta ocorra desprezando os relacionamentos existentes no Model da aplicação para este contexto de visão no Controller.  

A linha 44 além de trazer o relacionamento dos campos da tabela de Log e Users(usuários) ele armazena em uma sub-consulta a data de último acesso ao sistema através da leitura do registro de ultimo acesso:
$this->paginate['User']['fields'] = array('Log.*,(SELECT MAX(created) FROM logs WHERE users = User.id ORDER BY created DESC LIMIT 1) as ultimo','User.*');

Nas linhas 46 a 53 temos a consulta JOIN de relacionamento da tabela users com a tabela logs através de suas respectivas chaves primária e estrangeiras.

Na linha 54 temos uma conditions (condição) para caso o filtro de busca seja usado será filtrado e adequadamente listado.

Linha 55 temos o agrupamento da tabela ou GROUP BY, seguido pelo ORDER (ordenação linha 56) e limite de páginas a serem exibidas na listagem (linha 57).

A estrutura da classe do modelo de Log ficou simples e objetiva para este caso:
-------------------------------------------------------------------------------------------------------
class Log extends AppModel {
    
    public $name = 'Log';

public $belongsTo = array(
        'User' => array(
            'className'=> 'User', 
            'foreignKey' => 'users'
)
      );
}
-------------------------------------------------------------------------------------------------------

Já a classe de modelo (Model) de usuário foi mantido acrescentado ao atributo $belongsTo o relacionamento do Model Logs:
-------------------------------------------------------------------------------------------------------
public $belongsTo = array(
'Group' => array(
'className' => 'Group',
'foreignKey' => 'group_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Log' => array(
'className' => 'Log',
'foreignKey' => 'id'
)
);
------------------------------------------------------------------------------------------------------- 

Disso resultará uma consulta para listar todos os usuários ativos e suas respectivas data e hora de último acesso:


Podemos ver na coluna Ultimo - Acesso a data e hora de último acesso de cada usuário ao sistema.

Achei bom compartilhar esta experiência e agradeço a colaboração e ajuda de meu amigo Victor Souto que me orientou a melhor prática para chegar a esse resultado.

Um abraço a todos (as).
Bibliografia:
http://pt.wikipedia.org/wiki/CakePHP
http://www.mainelydesign.com/blog/view/forcing-a-single-join-in-cakephp-pagination
http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html



09/09/2013

Formatar datas com PHP

Uma maneira objetiva e boa para se formatar as datas no PHP é usando o objeto DateTime :

$date = new DateTime('2011-06-21');
echo $date->format('dmY');

Outra forma seria esta:

date("d/m/Y",strtotime($data_formato_mysql));

      => Retorna: 10/02/2014

Ou essa:

date("d/m/Y H:i:s",strtotime($data_formato_mysql))

     => Retorna: 10/02/2014 11:25:02

Para usarmos ele basta instanciarmos a classe com o valor sendo passado como parâmetro e pronto!

28/08/2013

Remover caracter especiais

Olá a todos (as),

Existem muitos versões de funções para remoção de caracteres especiais no PHP, mas eu optei em compartilhar esta aqui que funciona muito bem em minhas aplicações e usa expressão regular:

<?php
/*
  * Remover caracteres especiais - Roberto S. Melo - roberto_sm822@yahoo.com.br
*/
class AlgumaCoisaAi{
  public __construct(){
  
  }
  
  //METODO DE REMOÇÃO DE CARACTERES ESPECIAIS
  public function removerCaracter($valor){
      $valor = preg_replace("/&([a-z])[a-z]+;/i", "$1", htmlentities($valor));
      return $valor;
  }
  //.........  logica ........ 
}
?>

Espero que sirva de ajuda.

09/07/2013

Tornar qualquer usuario Moodle em Root

Boa tarde a todos (as), Hoje vou falar de configuração do LMS Moodle para quem conhece. Estive com uma certa dificuldade de descobrir como setar um usuário qualquer para que ele se tornasse administrador também. O procedimento não poderia ser o mais fácil como pode ser visto na imagem ilustrativa abaixo:

  

 Observe que o caminho para se chegar a esta tela é "Administração do Site => Usuários => Permissões => Administradores do site".  Para este exemplo usei a versão Moodle 2.3.8.

06/02/2013

Por que devo aprender Linux?

Por que devo aprender Linux?
Publicada em 04/02/2013 às 14:29

Principais tendências do mercado de TI tem Linux como pré-requisito

Empresas de consultoria, que trabalham na previsão de como será o futuro de TI, são unânimes em afirmar que a inter-relação das forças entre Cloud Computing, Mobilidade, Redes Sociais eInformações direcionam os novos cenários de negócios, juntas, elas estão revolucionando empresas e a sociedade.
Milhares de tecnologias, softwares e produtos são utilizados para suportar a "Era da Informação", o que nos leva a perguntar: Por que eu devo aprender Linux? A resposta é bastante simples: o Linux está na base, 'no coração', da computação em nuvem e dos dispositivos móveis que tem o Android como sistema operacional.
Em 2012, os tablets e celulares Android venderam mais do que PCs e já são 400.000.000 de dispositivos em todo o mundo. Em 2015, para cada 4 desenvolvimentos, em mobile, apenas 1 será para PC. O Android é baseado no Linux
Mas, se existe uma enorme probabilidade de termos em nossas mãos um dispositivo móvel que use Linux, a probabilidade de nos conectarmos em um aplicativo hospedado em Cloud, que tenha o Linux como sistema operacional, é ainda maior.
Na Amazon (AWS), um dos maiores provedores mundiais de serviços em Cloud, aproximadamente meio milhão de servidores físicos rodam Linux, suportando milhões de máquinas virtuais que também rodam em Linux. Outros provedores de Cloud devem apresentar situações parecidas.
Ninguém pode prever o futuro mas, trabalhando com probabilidades, aprender Linux é a opção certa para uma carreira de sucesso em TI -  tanto agora quanto no futuro.

Linux/Android em números:


S.O dos 500 maiores supercomputadoresLinuxOutrosSistem...jun 1998jun 1999jun 2000jun 2001jun 2002jun 2003jun 2004jun 2005jun 2006jun 2007jun 2008jun 2009jun 2010jun 2011jun 20120150300450600
2012 - Vendas de smartphones no BrasiliOSAndroidRIMSymbianWindowsBadaOutros31.5%56.8%Android56,7 (56.8%)



Fontes:
Artigo plublicado originalmente em: 4linux 4linux

23/01/2013

PHP mostrando planilha Excel XLS

Olá a todos(as),

Estive pesquisando um recurso para exibir uma planilha do Excel na página HTML com o seu conteúdo.

Achei a seguinte solução no Google Code: http://code.google.com/p/php-excel-reader/

A última revisão desta classe foi em 14-04-2009, então apresentou-se erros na codificação devido a funções antigas PHP que não são mais usadas nas versões atuais do núcleo PHP.  Por exemplo temos a função split('', $valor) que poderemos substituir pela explode("", $valor),  temos também na linha que faz a chamada a classe "OLERead" que controla a exibição das posições das células da planilha.

Exite uma versão desta classe "OLERead" atualizada para quem quiser contribuir em melhorar o código n o seguinte link: http://code.google.com/p/php-spreadsheetreader/source/browse/Excel/OLERead.php?r=26

Para quem precisa usar este recurso disponibilizo a versão melhorada do código que funcionará nas versões do PHP acima do 5.3:
http://code.google.com/p/php-excel-reader-melhorado/downloads/list


O proximo passo agora é criar um módulo ou plugin do Joomla 2.5 para ler os arquivos relacionados a artigos!

Um abraço a todos e vamos ver quem pode colaborar também... :)

20/12/2012

Fazendo Upload em PHP, Metodos "move_uploaded_file()" e suas variáveis.

Olá a todos!

Um recurso ou método muito interessante na linguagem PHP é o método move_uploaded_file().  Ao trabalharmos com esse método, temos várias formas de analizar o arquivo que iremos resgatar via navagador(browser).





Um dos parametros que varre o conteudo do arquivo e armazena o seu tipo é o "$_FILES['userfile']['type']".

Se debugarmos esta variável teremos como saber como o PHP interpreta os nomes dos diferentes tipos de arquivo como por exemplo:


Tipos de arquivos para upload a serem declarados e comparados por tipo:
Arquivos do tipo comprimidos:
application/x-rar-compressed .rar
application/force-download .zip
Arquivos do tipo texto:
text/comma-separated-values .csv
application/vnd.openxmlformats-officedocument.wordprocessingml.document .docx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xlsx
application/msword .doc
text/plain .txt
application/pdf .pdf
Arquivos do tipo Imagem:
image/jpeg .jpg
image/png .png

Sabendo-se deste recurso podemos tratar de uma forma mais elaborada os tipos de arquivos que poderemos fazer Upload.

Continua no próximo artigo...

19/12/2012

Resolvendo erro “TCPDF ERROR: Could not include font definition file: helvetica”

Recentemente tive um problema com a execução da biblioteca (conjunto de classes) de geração de arquivos no formato PDF de nome TCPDF.  Esta biblioteca já vem no pacote de instalação do Joomla! Da versão 1.5 até as últimas.  Sua estrutura de pastas pode ser encontrada acessando a raiz de seu site / CMS em:
  • /libraries/tcpdf/
img_02


 - Temos a pasta /cache/, onde fica armazenado como o próprio nome sugere o “cache” de execução das classes;
 - Também temos o /config/, que armazena as classes de configuração dos recursos e arquivos de linguagem;
 - A pasta /fonts/ é de vital importância para o carregamento dos tipos de fonte usados no sistema.  Verifique se o seu sistema Joomla! Está configurado corretamente para o tipo de fonte que se encontra nesta pasta. 
Nesta pasta só deve conter o tipo de fonte que você configurou no arquivo XML do Joomla.  No exemplo que me causou dor de cabeça com essa classe, tive de baixar a última versão do TCPDF através do link:
  •          http://sourceforge.net/projects/tcpdf/files/
img_03


Para saber qual fonte está configurada em seu arquivo de linguagem, acesse em seu Joomla! (somente nas versões 1.5) a pasta:
  •       /language/pt-BR/
img_01


Este parâmetro no arquivo de linguagem do Joomla! 1.5 (versões atuais como a 2.5 não o possui) é o que define a fonte da biblioteca de TCPDF.

Caso isso não resolva (também aconteceu comigo), teremos de recorrer a uma mudança diretamente na classe que controla a exibição do PDF (não desconfigure o que você já fez até aqui). Para isso abriremos o arquivo de classe PHP de nome “/libraries/tcpdf/tcpdf.php”.  Fazendo uma busca no arquivo pela função que controla o caminho (path) dos arquivos de fonte usados pela classe através do método:
   ->  _getfontpath()
   ->  Ou através da lógica de retorno do método: “ defined('K_PATH_FONTS') ? K_PATH_FONTS : ''; ”
img_05

Pelo incrível que pareça a solução é apenas colocar o caminho do completo onde se encontra a pasta de fontes em seu servidor de hospedagem, como por exemplo:
img_04

Um abraço a todos(as) e até logo.

Referência bibliográfica:
< http://www.tcpdf.org/index.php >