Pages

Subscribe:

Ads 468x60px

Labels

05/06/2012

Fazendo Logout no Joomla! 1.5 Via Script PHP

Olá amigos,

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

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

O passo primordial seria usar o Javascript para que este evento não dê refresh na página, para isso o meu amigo Daniel elaborou o seguinte script com JQuery:
----------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------
Este código acima seria colocado no Head do HTML e o abaixo no BODY:
-----------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------
 O resultado final pode ser visto e baixado no arquivo fonte abaixo:

Bom eu achei muito interessante, espero ajudar alguém ou quem quiser melhorar esta ideia e compartilhar o resultado, fiquem a vontade.

Um abraço e até logo. :)

Referências: www.danh.com.br

12/04/2012

Mascaras Jquery com meioMask

Ai queres ter uma máscara em seu formulario show de bola? Use esta biblioteca:

:)

09/04/2012

Tornando usuário comum em usuário ROOT cadastrado no Ubuntu 11 – Server

Neste tutorial iremos saber como tornar um usuário comum cadastrado via linha de comando no Linux Ubuntu Server 11,  em usuário ROOT (comando padrão "adduser [nome do usuário]").

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 (pergunta se deseja deletar o arquivo)
rm –f (deleta o arquivo incondicionalmente)
- Novo arquivo: vi (se não existir irá abrir um novo arquivo)
- 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




Isso resolve muitos problemas de permissão, compactação, transferência e tudo o mais durante o processo de transferência em servidor onde você tem o total controle de hospedagem.


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

12/02/2012

Lançada edição n.33 da Revista Espírito Livre!

Revista Espírito Livre - Ed. #033 - Dezembro 2011
Revista Espírito Livre - Ed. #033 - Dezembro 2011
Mais um ano termina. Desejos e expectativas nos movem em direção a novo ano. O ano de 2012 surge em meio a tempos nebulosos para certos assuntos ligados a tecnologia e software livre. Para muitos outros 2012 promete. Mas o que exatamente ele promete? Será que será o “Ano do GNU/Linux no desktop”? Para muitos, o ano do GNU/Linux no desktop já veio e já se foi. Afinal para muitos ele já ocupa lugar privilegiado no desktop. Outros esperam que ele fique ainda nais fácil e intuitivo. Cada um a seu tempo.
Em paralelo, convido os leitores a buscarem o manual de suas TVs. Neste fim de ano, muita gente adquiriu novos televisores, e vários modelos disponíveis no mercado “abrem” os populares tipos de arquivos que costumamos usar em nossos computadores: arquivos de áudio, foto e vídeo. O convite para verificarem os seus respectivos manuais tem um motivo simples, diga-se passagem, mas que merece ser mencionado: é bem provável que sua tv esteja equipada com software livre e você nem sabe. Então vale a pena dar uma olhada. Se já perdeu o manual, busque-o na web, isto não será uma tarefa difícil.
Esta dica sobre o “software” que roda em seu televisor serve inclusive para ser lançada diante dos incrédulos que insistem em dizer que software livre é coisa de amador. Talvez 2012 seja este, o ano do GNU/Linux no televisor, ou em outro dispositivo qualquer.
Quem sabe será o ano dos “embarcados”, ou ainda da telefonia móvel, movida a código aberto. E porque falo isso? Muitos já consideram que, usar o GNU/Linux no desktop está cada vez mais “mole”. O “tempo das complicações” já passou e quem teve que passar grande parte da instalação de sua distribuição preferida configurando todos os dispositivos “na unha” é que sabe… Diga-se de passagem, o Linux Mint que cumpre com respeito seu propósito de entregar ao usuário final uma distribuição bonita, bem polida, com visual profissional e acima de tudo, fácil. Clement Lefebvre, este é o cara que conseguiu entender isso e moldar uma solução que atendesse aos anseios do público leigo. Fica aí a dica.
Mas e 2012? Como será? O que este novo ano nos espera e o que podemos esperar dele? Vários de nossos colaboradores tem suas próprias opiniões a respeito e merecem total atenção pois nos apresentam o que pode ser, o futuro.
Além destes, algumas séries de artigos têm continuidade nesta edição, como é o caso da série sobre Java 7, Zabbix e Certificações LPI. Os colaboradores envolvidos enviaram com bastante primor seus materiais e a todos estes o nosso muito obrigado.
A edição especial do I Fórum da Revista Espírito Livre está a caminho e em breve estará disponível para download. Assim como mencionei na edição passada, já estão sendo estudadas alternativas para realizarmos o evento em outras localidades neste ano de 2012. Então, se tem interesse em levar o evento para sua cidade, entre em contato! Um dos objetivos do evento é justamente este: aproximar leitores dos redatores e colaboradores da Revista Espírito Livre.
Continuamos por aqui, agora adentrando em 2012. Com muitos desejos e expectativas.
Um forte abraço a todos vocês e nos vemos por aí.

06/02/2012

INSTALANDO AMBIENTE DE DESENVOLVIMENTO PHP+MYSQL+ECLIPSE NO UBUNTU LINUX



O primeiro passo para iniciar a instalação via terminal do Linux Ubuntu será necessário atualizar a lista de pacotes do APT-GET, com os seguintes comandos:

       $ sudo apt-get update


       $ sudo apt-get upgrade

Vamos passar agora para a instalação do APACHE 2 e PHP 5:

       $ sudo apt-get install apache2 php5

Caso a instalação tenha realmente sido bem sucedida, abra seu navegador e digite na barra de endereços:

Se aparecer a messagem como abaixo, significa que o apache e o php estão instalados corretametne:


Uma vez configurado o Apache e PHP, vamos para a instalação do MYSQL:

       $ sudo apt-get install mysql-server-5,0 php5-mysql

Diferentemente de uma instalação feita no Windows no Linux o Mysql exige uma senha durante a isntalação.

Mas caso você queira trocar a senha do usuário Mysql digite o seguinte comando:

        $ sudo mysqladmin -u root [sua_senha]

Vamos agora reiniciar o Apache, com o comando padrão usado para reiniciar um serviço no linux:

        $ sudo /etc/init.d/apache2 restart
Para facilitarmos a nossa vida, vamos instalar o administrador do MYSQL via navegador web, oou seja o PHPMYADMIN:

       $ sudo apt-get install phpmyadmin
Basta acessar agora o phpmyadmin atraves do navegador, digitando o usuário “root” e a senha que você definiu durante a instalação do mysql:
localhost/phpmyadmin

Desbloqueando a pasta /var/www para aceitar gravação e escrita:
Um procedimento que será necessário é desbloquear para o usuário de sistema Ubuntu (que não é o root) que você está usando, para permitir criar pastas e arquivos.
Uma maneira “tranquila” de e fazer isso é digitando o seguinte comando no terminal:
        $ gksudo nautilus /var
Este comando irá abrir o diretório /var em modo de superusuário:

Ao clicar com o botão direito do mouse iremos escolher "Propriedades" para alterarmos na guia "Permissões" as permissões de ação da pasta e subpastas criadas:

Lembrando que este procedimento servirá para todos os outras pastas, que ficarão acessíveis de serem gravadas.

Caso você tenha (assim como eu tive) problemas com permisão de acesso aos arquivos que estão na pasta /var/www/ e de suas outras pastas que você irá criar, digite o seguinte comando no terminal:
          $ chmod 755 /var/www
Isso impedirá que uma mensagem de alerta apareça em seu navegador, como no exemplo abaixo:

“You don't have permission to access / on this server.”

Instalando o ECLIPSE for PHP
O primeiro passo é baixá-lo do servidor oficial:
Escolha na lista de “Eclipse PDT 2.2.0 All In Ones / Eclipse PHP Package
a opção que está de acordo com a arquitetura de sua máquina, no meu caso eu escolhi:
all-In-One Linux x86/GTK 2 32-bit

A isntalação é bem simples, basta descompactar e procurar pelo arquivo executavel do Eclipse.

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"
Em seguida mandamos actualizar a lista de repositórios/pacotes
    sudo apt-get update
E para finalizar podemos instalar também já via terminal o Java Runtime Environment e respectivas dependências. Para isso usamos o comando:
   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.

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

03/02/2012

Novidades na nova versão do Ubuntu 11.10.

Novidades na nova versão do Ubuntu 11.10.
Para quem gosta de conhecimentos do mundo livre de software, disponibilizo o link da nova versão do Linux Ubuntu.

Segue o link para download:

Os recursos visuais e as facilidades de instalação para desenvolver seja em Java, seja em PHP estão show de bola!

Um abraço e até logo.

06/01/2012

Compartilhando na rede a pasta WWW do WAMPSERVER

Olá a todos(as),
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

Para aumentar a segurança dos formulários em seus sites ou sitemas online,  foi testado e implementado o recurso agora já incluído no JOOMLA 2.5 de reCAPTCHA, recurso de segurança de código livre 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.