Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou desenvolvendo um site trilíngue, e como nos CMS gostaria de ter apenas uma página e que em um determinado local desta página, apareça o conteúdo quando solicitado. Fiz esta bomba que vocês podem ver abaixo (fiz isto usando um raciocínio de iniciante, podem rir se quiserem), mas creio que pode ficar melhor.
<!-- Menu -->
<div id="barra_menu">
<div id="canto_menu"></div>
<ul id="menu">
<li><a href="?lang=<?= $idioma ?>&pag=empresa " title="<?= $menuEmpresa ?>"><?= $menuEmpresa ?></a></li>
<li><a href="?lang=<?= $idioma ?>&pag=produtos " title="<?= $menuProdutos ?>"><?= $menuProdutos ?></a></li>
<li><a href="?lang=<?= $idioma ?>&pag=clientes " title="<?= $menuClientes ?>"><?= $menuClientes ?></a></li>
<li><a href="?lang=<?= $idioma ?>&pag=parceiros" title="<?= $menuParceiros?>"><?= $menuParceiros?></a></li>
<li><a href="?lang=<?= $idioma ?>&pag=contato " title="<?= $menuContato ?>"><?= $menuContato ?></a></li>
</ul>
</div>
<!-- Conteudo -->
<div class="conteudo">
<?php
if (isset($_GET['pag'])){
switch ($_GET['pag']){
case empresa:
include "$idioma/$incempresa.php";
break;
case produtos:
include "$idioma/$incprodutos.php";
break;
case clientes:
include "$idioma/$incclientes.php";
break;
case parceiros:
include "$idioma/$incparceiros.php";
break;
case contato:
include "$idioma/$inccontato.php";
break;}
}else{
include "$idioma/home.php";}
?>
</div>Obrigado até aqui Alexandre, vou testar o que você me passou... acho que vai dar certo. Só mais uma dúvida:
Se eu estou na página ?lang=es&pag=produtos
e clico no link pra mudar de idioma (?lang=pt por exemplo) volta pra página inicial... teria como resgatar o valor "produto" pra que o link ficasse assim ?lang=pt&pag=produtos ? Entendeu? Qualquer dúvida me pergunte. Obrigado mais uma vez.
>
Obrigado até aqui Alexandre, vou testar o que você me passou... acho que vai dar certo. Só mais uma dúvida:
Se eu estou na página ?lang=es&pag=produtos
e clico no link pra mudar de idioma (?lang=pt por exemplo) volta pra página inicial... teria como resgatar o valor "produto" pra que o link ficasse assim ?lang=pt&pag=produtos ? Entendeu? Qualquer dúvida me pergunte. Obrigado mais uma vez.
Vou lhe mostrar o codigo que fiz no meu site: http://raphaelddl.com (independente do lugar, troca a lingua mas continua no lugar q você tah)
é assim:
aqui será o LINK pra poder trocar de lingua
> <a href="<?php $_SERVER['PHP_SELF'] ?>**<?php CODIGO ABAIXO ?>**lang=*es*"> aqui é a img ou texto com lingua, no caso, ES</a>
onde é bold, é o codigo abaixo e o italico, a linguagem q você tá chamando
<?php
$default = "?";
if( isset( $_GET['pag'] ) )
{
echo "?pag=" . $_GET['pag'] . "&";
}
else
{
echo $default;
}
?>
Explicações:
SE tiver alguma pag= na URI (a url lá em cima no browser :D), ele vai dar criar um link ?pag=PAGqueESTAVA&. Ai adicionando o lang=es que está no link. Ai fica ?pag=PAGqueESTAVA〈=es. Ou seja, ele detecta a pagina que está e já a adiciona no link que chama a lingua. Abrindo o codigo fonte, ficará <a href="?pag=PAGqueESTAVA〈=es" etcsssssss...
CASO nao houver nenhuma pag= na URI (normalmente, quando a pagina está na home), ele só escreve ?, ou seja, o link ficará ?lang=es, com codigo fonte <a href="?lang=es" etcsssssss...
Bom, espero que tenha entendido e que isso lhe ajude bastante.
Esse foi meu 1o script de PHP, quando estava começando a querer aprender :P ainda nao sei nada mas, isso me ajudou bastante a entender AshaushAhs D:
EDIT:
Adicionando: PARA A 'BOMBA', eu uso isso aqui abaixo, bem mais prático pq nao precisa declarar as páginas:
<?php
if ($_GET['pag'])
if (file_exists('./'.$_GET['pag'].'.html'))
@include($_GET['pag'].'.html');
else
@include('./404.html');
else
@include ("./main.html");
?>
Explicando:
coloque isso dentro da Div/table/etc que ficará o conteúdo.
Crie a main.html (pagina inicial, quando abre o site... por exemplo, "Bem-vindo")
404.html (pagina com algo do tipo "voce requisitou uma pagina inexistente ou indisponivel no momento")
Crie a página produtos.html (nem precisa das tags <html><head><body> etc, coloque apenas oq você quer que Apareça).
Agora, todos os links serão <a href="?pag=ALGUMACOISA" etccccssss.. (exemplo: <a href="?pag=produtos" )
Agora, explicar o script de modo informal:
veja se tem a variavel 'pag' na URI. Se tiver, verifique se tem o arquivo 'valorDaPag'.html. Se o arquivo existir, inclua-o no layout. Se nao existir, inclua a pagina 404.html.
Caso a variável pag nao houver valor nenhum (normalmente, quando a pessoa entra no seu site www.seusite.com/index.php), inclua a main.html (a pagina inicial :D).
E tem @ para nao aparecer aqueles Warning: failed blablabla e mostrar todo mundo seu usuário (tipo /home/SEUUSUARIO/www/arquivoQueDeuPal.php)
Ah, nao se preucupe com codigos php dentro dos htmls. lembre-se, o include joga os codigos do arquivo HTML dentro do seu index.php (ou seja, os codigos SAO interpretados)
ABRAÇOS
Olá DarkDragonLord, muito obrigado... Agora tudo está ok.
Saberia como faz pra que o endereço da página ?lang=es&pag=empresa fique assim: /es/empresa ? Mais uma vez, obrigado. Até mais.
>
Olá DarkDragonLord, muito obrigado... Agora tudo está ok.
Saberia como faz pra que o endereço da página ?lang=es&pag=empresa fique assim: /es/empresa ? Mais uma vez, obrigado. Até mais.
Isso seria com o .htaccess usando ModRewrite. Mas eu também tô tentando e até hoje nao consegui fazer funcionar, independente do Tutorial... Nenhum dos mais de 40 que li funcionaram.....
Nenhum dos mais de 40 que li funcionaram.....
q tutoriais foram esses?!ModRewrite jah naum é novidades, existem muitos tutos excelentes para o uso dessa tecnologia...
poste um dos tutoriais q você leu, eu posso te dizer se tem algum erro nele, ou posso te ajudar a identificar onde você esta errando...
Abraços
>
Nenhum dos mais de 40 que li funcionaram.....
q tutoriais foram esses?!ModRewrite jah naum é novidades, existem muitos tutos excelentes para o uso dessa tecnologia...
poste um dos tutoriais q você leu, eu posso te dizer se tem algum erro nele, ou posso te ajudar a identificar onde você esta errando...
Abraços
o problema, pelo menos eu ACHO, não é os tutos mas é pq a forma que meus links são feitos não é 'compatível' com os modrewrites convencionais
Opa Augusto... Tudo bem...
Eu uso assim quando faço um Portal em cima de index:
// Chama a Página requerida
switch($Paginas)
{
case "PAGINA":
if(eregi("[a-z|A-Z]",$Paginas))
{
if(file_exists($Caminho.$Paginas.$Extencao))
{
E não se preocupe com a Bomba aew em cima é assim msm...
Só recomendaria que você utiliza-se uma página pra gerenciar esses links em vez de colocá-lo direto na página...
Página com links:
include('links./php/html');
Exemplo... Para que você possa editá-lo em separado do conteúdo da Página principal...
Abraços