"Migrar" um site normal para joomla

  • lsteffler
  • Avatar de lsteffler Autor do Tópico
  • Offline
  • JCB! Colaborador
  • JCB! Colaborador
Mais
8 anos 8 meses atrás #44082 por lsteffler
lsteffler created the topic: "Migrar" um site normal para joomla
Bom dia!

Possuo um site desenvolvido em php, e agora eu quero transformar ele para o Joomla, pois vai ficar mais prático de trabalhar, alem das inumeras funcionalidades que posso adicionar ao meu site e faze-loo bem melhor.

Estou enfrentando um problema, tenho um sistema de lista telefonica dinamica, quando o visitante digita 3 letras da palavra ele já começa exibir resultados e vai filtrando conforme continua a digitação.

Não estou sabendo como colocá-lo funcional no joomla, tenho os seguintes arquivos no meu site normal:

No index, o código entre as tags head:
<script src="script.js"></script>
<script>
function pesquisa(valor)
{
//FUNÇÃO QUE MONTA A URL E CHAMA A FUNÇÃO AJAX
url="busca_nome.php?valor="+valor;
ajax(url);
}
</script>

Na página inicial o formulário para pesquisa:
Digite abaixo o nome que deseja localizar: 
    <!-- NOTE Q A CADA TECLA PRESSIONADA É CHAMADA A FUNÇÃO PESQUISA PASSANDO O QUE O USUARIO TEM DIGITADO ATÉ O MOMENTO -->
<input type="text" name="nome" onKeyUp="pesquisa(this.value)" />
</p>
    <!-- AQUI SERÁ APRESENTADO O RESULTADO DA BUSCA DINÂMICA.. OU SEJA OS NOMES -->
<div id="pagina"></div>

E os arquivos para conexão e função:

sript.js
// JavaScript Document
// FUNÇÃO RESPONSÁVEL DE CONECTAR A UMA PAGINA EXTERNA NO NOSSO CASO A BUSCA_NOME.PHP
// E RETORNAR OS RESULTADOS

function ajax(url)
{
    
document.getElementById('pagina').innerHTML = "<div id='loading'><img src='imagens/loader.gif' /></div>";

//alert(nick);
//alert(dest);
//alert(msg);

req = null;
// Procura por um objeto nativo (Mozilla/Safari)
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET",url,true);
req.send(null);
// Procura por uma versão ActiveX (IE)
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {

req.onreadystatechange = processReqChange;
req.open("GET",url,true);

req.send();
}
}
}

function processReqChange()
{

// apenas quando o estado for "completado"
if (req.readyState == 4) {

// apenas se o servidor retornar "OK"

if (req.status ==200) {

// procura pela div id="pagina" e insere o conteudo
// retornado nela, como texto HTML

document.getElementById('pagina').innerHTML = req.responseText;

} else {
alert("Houve um problema ao obter os dados:n" + req.statusText);
}
}
}

busca_nome.php
<?php
header("Content-Type: text/html; charset=ISO-8859-1", true);


if(!empty($_GET&#91;"valor"&#93;))
{
// O CAMPO VALOR CONTERÁ O QUE O USUARIO DIGITOU ATÉ O MOMENTO..
// CONECTA AO BANCO COLOCA PARAMENTROS IP,USUARIO,SENHA
include_once('conexao.php');

// EXECUTA A INSTRUÇÃO SELECT PASSANDO O QUE O USUARIO DIGITOU
$sql="select * from lista where nome like '%$_GET&#91;valor&#93;%'";
$resultado=mysql_query($sql) or die (mysql_error());

//VERIFICA A QUANTIDADE DE REGISTROS RETORNADOS
$linhas=mysql_num_rows($resultado);

if($linhas>0){
//EXECUTA UM LOOP PARA MOSTRAR OS NOMES DAS PESSOAS
// VALE LEMBRAR QUE TODOS ESSES RESULTADOS SERAO MOSTRADOS DENTRO DA PAGINA INDEX.PHP
// DENTRO DO DIV 'PAGINA'

while($pegar=mysql_fetch_array($resultado))
{
    echo "<hr>";
    echo "<p style='font-weight: bold;'>$pegar&#91;nome&#93;</p>";
    echo "<p style='font-weight: bold; color:#A1000F;'>$pegar&#91;fone&#93;</p>";
    echo "$pegar&#91;ende&#93;<br />";
}
}

}
?>

<?php
function stringParaBusca($str){
    //Transformando tudo em minúsculas
    $str= trim(strtolower($str));
    
    //Tirando espaços extras da string...
    while (strpos($str," "))
                $str = str_replace(" "," ",$str);
                
    //Agora, vamos trocar os caracteres perigosos "ã, á..." ´pr coisas limpas "a"
    $caracteresPerigosos =
    array("ã","á","à","ä","â","é","è","ë","ê","í","ì","ï","î","õ","ó","ò","ô","ú","ù","ü","û","ç");
    $caracteresLimpos = 
    array("a","a","a","a","a","e","e","e","e","i","i","i","i","o","o","o","o","o","u","u","u","c");
    $str = str_replace($caracteresPerigosos,$caracteresLimpos,$str);
    
    //Agora que não temos mais nenhu8m acento em nossa string, e estamos com ela toda em "lower",
    //vamos montar a extressão regular para o MySQL
    $caracteresSimples = array("a","e","i","o","u","c");
    $caracteresEnvelopados = array("{&#91;a&#93;}","{&#91;e&#93;}","{&#91;i&#93;}","{&#91;o&#93;}","{&#91;u&#93;}","{&#91;c&#93;}");
    $str = str_replace($caracteresSimples,$caracteresEnvelopados,$str);
    $caracteresParaRegExp = array(
    
    "(a|ã|á|à|ä|â|ã|á|à|ä|â|A|Ã|Á|À|Ä|Â|Ã|Á|À|Ä|Â)",
    "(e|é|è|ë|ê|é|è|ë|ê|E|É|È|Ë|Ê|É|È|Ë|Ê)",
    "(i|í|ì|ï|ê|í|ì|ï|î|I|Í|Ì|Ï|Î|Í|Ì|Ï|Î)",
    "(o|õ|ó|ò|ö|ô|õ|ó|ò|ö|ô|O|Õ|Ó|Ò|Ö|Ô|Õ|Ó|Ò|Ö|Ô)",
    "(u|ú|ù|ü|û|ú|ù|ü|û|U|Ú|Ù|Ü|Û|Ú|Ù|Ü|Û)",
    "(c|ç|Ç|ç|Ç)");
    $str = str_replace($caracteresEnvelopados,$caracteresParaRegExp,$str);
    
    //Trocando espaços por .*
    $str = str_replace(" ",".*",$str);
    
    //Retornando a String finalizada!
    return $str;
}
?>

conexao.php
<?
//pagina para conectar no banco de dados
$mysql_servidor = "localhost"; // Seu servidor de mysql, normalmente é localhost.
$mysql_usuario = "lsteffler"; // Seu usuario no mysql.
$mysql_senha = "lsteffler"; // Sua senha no mysql.
$mysql_database= "novo"; // Seu banco de dados.

mysql_connect($mysql_servidor,$mysql_usuario,$mysql_senha) or die(mysql_error()); // Tenta conectar ao mysql, se falhar exibe o erro
mysql_select_db($mysql_database) or die(mysql_error()); // Tenta selecionar a base de dados, se falhar exibe o erro.
?>

Bom é isso aí, no meu site normal funciona ok, agora tentei passar para o joomla, copiando os arquivos e inserindo o código no index, e o formulario no artigo que aparece na pagina inicial mas nao funcionou...

Obs. estou tentando tdo localmente no momento.

Agradeço muitíssimo quem puder me auxiliar, abraços!

[color=#0000FF:74o6zvss][i:74o6zvss][b:74o6zvss]Luciano L. Steffler[/b:74o6zvss][/i:74o6zvss]
Desenvolvedor Web - Em busca de Conhecimento![/color:74o6zvss]

Please Entrar ou Registrar to join the conversation.


Mais
8 anos 8 meses atrás #44208 por edulemasson
edulemasson replied the topic: Re: &quot;Migrar&quot; um site normal para joomla
Olá Luciano a progamação do joomla se extende a componentes, plugins e módulos.
Se você estiver disposto e tiver tempo para estudar estas estruturas de programação, segurança etc o joomla permite tranquilamente este tipo de coisa.

Da forma que você fez nunca irá funcionar!

Posso te dar umas dicas, mas se vc quiser aprender mesmo, vai ter que ser na unha.

Por exemplo: no php ou html a chamada de css ou js externo pode ser fazer assim como vc faz, já no joomla esta chamada seria:
JHTML::script(nome_do_arquivo, pasta_completa);
exemplo:
JHTML::script('script.js','modules/mod_meumodulo/js/');

Com relação ao banco de dados, o Joomla já possui conexão direta com o banco de dados, tudo que vc precisa é utilizá-lo também para seu programa.
Um exemplo de sintaxe de leitura do Joomla é:
         $db =& JFactory::getDBO(); // Faz a conexão na base do joomla
	 $query1 = "SELECT COUNT(*) as TotalCadastros FROM `prefix_users`   "; 
	 $query1 = mysql_query($query1); // comando padrão PHP para executar comando dB
	 $query1 = mysql_fetch_array($query1); // transforma retorno de DB em Array 
	 $TotalCadastros = $query1&#91;"TotalCadastros"&#93;;

Bom o que quero dizer é que programar para Joomla você vai ter que estudar a estrutura do funcionamento dele e respeitar seu sistema.

É mais fácil para você que está acostumado com o código do seu programa, pagar alguém para criar o componente para você, daí você irá notar a estrutura e se tiver bastante força de vontade, poderá começar a programar seus componentes...

Grande abraço e boa sorte

Please Entrar ou Registrar to join the conversation.

Mais
8 anos 8 meses atrás #44305 por xiris
xiris replied the topic: Re: &quot;Migrar&quot; um site normal para joomla
Cara, se for apenas o output na tela, você pode estudar como criar um módulo que você consegue fazer isso.

Agora, se você tiver que fazer um gerenciamento desta lista, com o CRUD e tudo mais, estude a criação de componentes. Em seguida, você pode criar um módulo para exibir esta lista em qualquer posição do layout.

Como disse o colega acima, antes de tudo estude a documentação do !Joomla, entenda como funciona seu framework e depois construa suas aplicações segundo as especificações do mesmo, vai te facilitar e muito.

Abraços e sucesso!

Please Entrar ou Registrar to join the conversation.

  • lsteffler
  • Avatar de lsteffler Autor do Tópico
  • Offline
  • JCB! Colaborador
  • JCB! Colaborador
Mais
8 anos 8 meses atrás #44321 por lsteffler
lsteffler replied the topic: Re: &quot;Migrar&quot; um site normal para joomla
Blz, obrigado pelas informações, vou estudar mesmoa criação de componentes, modulos e plugins e tentar montar o meu mesmo.

Mas como eu precisaria que isso funcionasse meio que pra ontem, eu utilizei o módulo que "puxa" um iframe, chamando a pagina lista.php...

quase deu certo...

quando começo a digitar a pesquisa desejada ele já me aprensenta o seguinte erro:

Access denied for user 'ODBC'@'localhost' (using password: NO)

porém no arquivo conexao está tdo certo nome de usuario senha etc... vc saberia me informar alguma solução?

Grato! <!-- s:ugeek: --><img src="{SMILIES_PATH}/icon_e_ugeek.gif" alt=":ugeek:" title="Uber Geek" /><!-- s:ugeek: -->

Em tempo:
Testei online e ta funcionando ok pelo banco do servidor, mas localmente nao tenho sucesso.... eu uso o Xampp aqui.

[color=#0000FF:74o6zvss][i:74o6zvss][b:74o6zvss]Luciano L. Steffler[/b:74o6zvss][/i:74o6zvss]
Desenvolvedor Web - Em busca de Conhecimento![/color:74o6zvss]

Please Entrar ou Registrar to join the conversation.

Mais
5 anos 4 meses atrás #96732 por liclopes
liclopes replied the topic: Re: &quot;Migrar&quot; um site normal para joomla
Normalmente esse erro é: ODBC Conector não esta instalado no computador

Access denied for user 'ODBC'@'localhost' (using password: NO)

http://dev.mysql.com/downloads/connector/odbc/

OU mude:

1.
$link = mysql_connect($db_host, $db_user, $db_pass);

para:
$link = mysql_connect($this->db_host, $this->db_user, $this->db_pass);

2.
require_once("./configs/config.inc.php");

para:
require("./configs/config.inc.php");

OU verifique o login padrão:
$db_username = "root"; 
$db_password = "";

Please Entrar ou Registrar to join the conversation.