05/06/2012
Fazendo Logout no Joomla! 1.5 Via Script PHP
Estive com uma necessidade que gerou o levantamento de como efetuar o logout no Joomla dentro de componente criado.
A solução foi a seguinte:
- Varrer com um PRINT_R() as variáveis globais ($GLOBALS);
- Achei a seguinte combinação no array referente a session: $GLOBALS['HTTP_SESSION_VARS']['__default'];
Com essa informação em mãos podemos agora criarmos a destruição da session completa do Joomla!, como neste script de exemplo abaixo:
Observe como foi simples e objetivo.
Um abraço e até logo.
17/05/2012
Conexao com base externa dentro de Componente Joomla! 1.5.25
Olá a todos(as),
Com base em estudos de como construir um componente para CMS Joomla segue este registro de estudo dos métodos e objetos do Framework Joomla! para desenvolvimento de aplicativos componentes.
Segue aqui para ficar registrado o método de como estabelecer conexao com base de dados externa à session e contexto de um componente Joomla! 1.5.25:
/*
1- //Acessando uma base de dados Externa dentro do joomla!
2- $opcoes = array();
3- $opcoes['host'] = 'localhost';
4- $opcoes['user'] = 'root'; //usuario mysql
5- $opcoes['password'] = 'SENHA'; //senha do mysql
6- $opcoes['database'] = 'riovagas02'; //Nome do banco
7- $opcoes['prefix'] = ''; //PREFIXO DA TABELA, SE TIVER
8- $opcoes['driver'] = 'mysql';
9- //==========================================================
10- $db = "";
11- $db =& JDatabase::getInstance( $opcoes );
12- //Tratando os Erros -------------------------------------------------------------
13- if ( JError::isError($db) ) {
14- jexit('Database Error: ' . $db->toString() );
15- }
16- if ($db->getErrorNum() > 0) {
17- JError::raiseError(500 ,'JDatabase::getInstance: Falha na conexao
'
18- . 'joomla.library:'.$db->getErrorNum().' - '.$db->getErrorMsg() );
19- }
*/
Agora basta executarmos uma consulta de exemplo para vermos o resultado de nossa conexão:
/*
20- $sqlUser = "SELECT `id_Trabalhador` , `nome` , `status` , `nivel_user`, email_corporativo AS email FROM #__recrutador WHERE email_corporativo = '".$usuario->email."' ORDER BY id_TrabalhadorASC";
21- $db->setQuery( $sqlUser );
22- $parents = $db->loadObjectList();
23- foreach ( $parents as $row ) {
24- $UsuarioNome = $row->email;
25- $idTrabalhador = $row->id_Trabalhador;
26- $nivelDoUsuario = $row->nivel_user;
27- $userStatus = $row->status;
28- }
*/
Observe acima que foi montado uma matriz (linhas de 1 a 10) com os dados de sua conexão com a base de dados do Mysql. Observa-se também que a conexão é estabelecida pelo objeto "JDatabase" que possui o método herdado (::) de nome "getInstance" que retorna uma referência ao objeto de banco de dados global (linha 11). Após isso vemos o tratamento de erros de conexão (linhas 12 a 19).
Na linha 20 digitamos o nosso SQL pretendido e através do método "setQuery()" realizamos a execução da consulta SQL, observe que destaquei em vermelho este parâmetro (#__) que é tratado internamente pelo Joomla! para subustitui pelo prefixo da tabela, se houver, caso contrário não precisa colocá-lo.
Para retonarmos na tela com os dados de nossa consulta usaremos o método "loadObjectList()" carregando uma lista de objetos de banco de dados, que ao combinarmos com a função PHP nativa de varredura "foreach" iremos trazer os campos de nosso interesse da tabela em banco.
Esse recurso interno do Framework do Joomla! é sem dúvida uma mão na roda para casos em que estamos desenvolvendo aplicações que consultam bases de dados externas ao nosso CMS.
Espero que ajude alguém de alguma forma, fico a disposição para sugestões e criticas construtivas.
Um abraço a todos(as).
09/05/2012
Select Oculta os CheckBox
Neste artigo de hoje vou compartilhar uma necessidade que tive de implementar em um formulário criado pelo componente RSForm Pro! do Joomla! versão 2.5.
A necessidade veio do momento em que o usuário escolhe por exemplo: - um curso em um select ou combo (dropdow) que nos tráz uma lista de cursos. Ao escolher um curso específico no combo, mostrará somente os turnos que os cursos estão disponíveis, como por exemplo:
Administração --------- [ ]Manhã [ ]Tarde [ ]Noite
Fisioterapia --------- [ ]Manhã [ ]Noite
Psicologia --------- [ ]Noite
12/04/2012
Mascaras Jquery com meioMask
:)
09/04/2012
Tornando usuário comum em usuário ROOT cadastrado no Ubuntu 11 – Server
Primeiramente entraremos como usuário root pelo SSH e entraremos na pasta “cd /etc”:
Ao listar como pode ser visto acima o diretório e seus arquivos Linux de configuração iremos editar o arquivo 'group' com o comando 'vi group':
Digite 'i' (sem as aspas) para editar no vi e adicione após a última virgula na linha “sudo:x:” o usuário que terá direitos de ROOT. Em seguida digite a tecla “Esc” e “:wq!” para salvar e sair, pronto está definido mais um super usuário (Root). Com isso poderá executar qualquer alteração de arquivos após digitar os comandos para ambientar-se como ROOT:
“sudo bash”+ Enter
Digite a sua senha e passará a operar como ROOT.
=================== APÊNDICE DE COMANDOS LINUX =========================
Comandos Principais do Linux (putty.exe)
- Abrir diretório: cd
- Ir ao diretório raiz: cd
- Listar arquivos: ls
- Ver qual caminha absoluto em que está: pwd
- Editar arquivo com VI: vi
- Deletar arquivo: rm –i
rm –f
- Novo arquivo: vi
- Salvar arquivo: :w ou :w! (se o arquivo estiver no readonly)
- Sair do Editor: :q ou exit (fecha o aplicativo putty.exe completamente)
- Limpar a tela: clear (comando “cls” do DOS)
- Criar um diretório: mkdir
- Deleta um diretório (Vazio): rmdir
- Mostra o conteúdo do arquivo: cat
- Mostra o tipo de arquivo: file
Um abraço a todos(as) e até logo.
12/02/2012
Lançada edição n.33 da Revista Espírito Livre!
06/02/2012
INSTALANDO AMBIENTE DE DESENVOLVIMENTO PHP+MYSQL+ECLIPSE NO UBUNTU LINUX
Porém temos de insalar o JAVA (JRE) maquina virtual para que o Eclipse rode corretamente, seguindo os seguintes comandos:
- Para podermos instalar o Java Runtime Environment (JRE) no Ubuntu vamos adicionar via terminal o repositório referente aos parceiros:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts
Nos proximos tutoriais, mostrarei como iniciar as configurações básicas do Eclipse para se trabalhar com PHP.
03/02/2012
Novidades na nova versão do Ubuntu 11.10.
06/01/2012
Compartilhando na rede a pasta WWW do WAMPSERVER
Neste artigo vamos aprender a configurar o WAMPSERVER para que a pasta do mesmo seja acessada de qualquer ponto em uma rede Local no Windows 7.
1º Passo é termos o WAMPSERVER instalado em sua máquina (isso supõe-se que você já saiba fazer).
2º Passo sabermos o nome de nosso computador no Windows 7 ou o nosso endereço de IP na Rede. Para descobrirmos o nome de nossa máquina vamos em menu Iniciar => Computador => Clicar com o botão direito do Mouse em Propriedades:
Abrir-se-á a tela de Propriedades do sistema, observe na figura o campo onde podemos consultar qual é nome do computador que é reconhecido na rede:
Agora podemos também (opcionalmente) descobrirmos o IP da máquina, porém só seria recomendado acessar na rede a pasta do WWW de uma quina com servidor WAMP se este endereço de IP é fixo, caso contrário, quando tempos um servidor DHCP ativado o IP desta maquina pode mudar. Recomendo então acessar via nome da maquina na rede, mesmo assim vamos ver como descobrir qual o endereço IP de nossa maquina Windows 7:
- Vá no menu Iniciar => No campo de Busca digite cmd.exe => Digite ENTER do teclado:
Uma vez com o PROMPT do CMD aberto digitaremos o bom e velho ipconfig /all:
Observe que na linha: “Endereço IPv4” podemos saber qual é o IP preferencial.
Agora que sabemos o nome de nossa máquina e o endereço IP, vamos configurar diretamente no WAMPSERVER para que a pasta WWW seja acessada de qualquer máquina da rede. Para isso teremos de alterar o arqui do APACHE na chamada direta pelo menu do WAMPSERVER, observe a imagem abaixo:
Vemos que ao clicar próximo do relógio do Windows para mostrar os ícones ocultados, clicaremos em cima do ícone do WAMP Server para listar as opções, escolhemos a opção: Apache => http.conf
Iremos buscar as seguintes linhas neste arquivo:
-----------------------------------------------------------------
#
# Controls who can get stuff from this server.
#
# onlineoffline tag - don't remove
Order Deny,Allow
#Deny from all
Allow from 127.0.0.1
-----------------------------------------------------------------
A seguir iremos modificar para a seguinte estrutura:
--------------------------------------------------------------
#
# Controls who can get stuff from this server.
#
# onlineoffline tag - don't remove
Order Deny,Allow
#Deny from all
Allow from all
--------------------------------------------------------------
Uma vez feito isso iremos reiniciar os serviços do WAMPSERVER para que tudo ocorra bem!
Pronto, está feito, agora qualquer um que estiver na sua rede poderá digitar o nome de sua máquina para acessar a pagína inicial do "localhost" de sua pasta WWW.
Espero que tenha ajudado e até a proxima!
05/01/2012
Aumentando segurança de seus formulários com o reCAPTCHA da Google
Através do site: http://code.google.com/intl/pt-BR/apis/recaptcha/docs/php.html
Podemos explorar como instalar este recurso em projeto de script em PHP puro ou em outras linguagens ou CMS como o próprio JOOMLA, WordPress, phpBB, MediaWiki.
Neste exemplo é apresentado a implementação do recurso em um formulário escrito em PHP sem CMS.
Para que o recaptcha funcione adequadamente deverá ter cadastro gratuito no site:
https://www.google.com/recaptcha
A clicar em MY ACCOUNT, faz-se o login com uma conta sua do gmail ou cadastrada no Google. Uma vez logado veremos como abaixo o menu de opções para se criar o TOKEN para o domínio onde aparecerá o recurso em seu formulário clicando-se em +Add a New Site
A quantidade de domínios para gerar estes TOKEN’s não sei se é ilimitada, mas podemos adicionar muitos domínios em uma única conta reCAPTHA.
Uma vez digitado no campo de domínio do site que irá ser carregado o recurso, será gerado duas chaves:
-Public Key;
- Private Key.
Tendo em mãos as chaves, iremos precisar de um arquivo rodando no servidor (recaptchalib.php). Os outros arquivos são exemplos, readme e outras coisas legais - eles não afetam a funcionalidade.
Para fazer funcionar precisará apenas incluir estas linhas básicas no formulário ao qual necessita-se de aumentar a segurança:
----------------------------------------------------------------------
require_once('recaptchalib.php');
$publickey = "your_public_key"; // coloque aqui a Public key
echo recaptcha_get_html($publickey);
---------------------------------------------------------------------------------------------------------
Uma importante informação é que este arquivo que estamos incluindo deve estar na mesma pasta do formulario e arquivo de processamento, para seu perfeito funcionamento.
As próximas linhas de exemplo serão inseridas no arquivo que processará as informações do formulário (Server Side):
-----------------------------------------------------------------------------------------------------------------------
require_once('recaptchalib.php');
$privatekey = "your_private_key"; // coloque aqui a Private key
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
"(reCAPTCHA said: " . $resp->error . ")");
} else {
// Your code here to handle a successful verification
}
?>
------------------------------------------------------------------------------------------------------------------------
Uma vez inserido as respectivas chaves (pública e privada), bastará trabalhar a condição para restringir o cadastro caso os caracteres digitados não corresponderem, retornando ao formulário para uma nova validação.




















