Ir para conteúdo
Fórum Script Brasil
  • 0

Classe para URL's Amigáveis


Norivan Oliveira

Pergunta

Para quem tem dificuldades em usar URL amigáveis ou está com presa, segue este fragimento da classe SGMkt, uma classe que criei para fazer trabalhos de optiminização de marketing (SEO) mais rápido.

É necessário criar 2 arquivos, segue a estrutura default

./www

redir.php

.../sistemasgerenciais

.../sgmkt_express.class

<?php
/*
   Name: SGMktExpress
   Description: Create a .htacess to accept simple friendly URL and loads the pages
   Require: config.ini
   Author: Norivan Oliveira - www.sistemasgerenciais.com - 10/2008
   License: GPL 2.0
*/
   
class SGMktExpress {
    function __construct()
    {
        $arquivo = file("config.ini");
        $this->home = $arquivo[0];
        $this->master = $arquivo[1];
        $this->subjetc_fail = $arquivo[2];
        $this->msg_fail = $arquivo[3];
    }

    function Carrega($page)
    {
        if (!isset($page)) {
            $page = "index";
        }
        
        $page = $page . ".php";

        if (file_exists($page)) {
            require_once($page);
        } else {
            if (function_exists('mail')) {
                mail($this->master, $this->subjet_fail, $this->msg_fail.$page);
                echo "A página $page requisitada não existe.<script>window.location=" . $this->home . ";</script>";
            } else {
                echo "Função mail() inabilitada";
                echo "A página requisitada não existe.<script>window.location=" . $this->home . ";</script>";
            }
        }
    }

    function Instalar()
    {
        $htaccess = ".htaccess";
        $conteudo = "RewriteEngine On";
        $conteudo .= "\nRewriteCond %{SCRIPT_FILENAME} !-f";
        $conteudo .= "\nRewriteCond %{SCRIPT_FILENAME} !-d";
        $conteudo .= "\nRewriteRule ^(.*)$ redir.php?page=$1";

        fopen($htaccess, "w+");

        if (is_writable($htaccess)) {
            if (!$handle = fopen($htaccess, 'a')) {
                echo "Não foi possível abrir o arquivo ($htaccess)";
                exit;
            }

            if (fwrite($handle, $conteudo) === false) {
                echo "Não foi possível escrever no arquivo ($htaccess)";
                exit;
            }

            echo "<script>window.alert('Instalação do SGMkt Express concluída com sucesso');</script>";

            fclose($handle);
        } else {
            echo "O arquivo $htaccess não pode ser alterado";
        }
    }
}
/* Call sample
$ob = new SGMkt();
$ob->Carrega($page);

config.ini sample
[url=http://www.x.com.br]http://www.x.com.br[/url]
x@x.com
Messagem do site: Falha de carregamento
Ocorreu uma falha ao tentar carregar a seguinte página:

redir.php sample

if (file_exists("sistemasgerenciais/sgmkt_express.class")) {
    require_once("sistemasgerenciais/sgmkt_express.class");
    $ob = new SGMktExpress();
    if (!file_exists(".htaccess")){
        $ob->Instalar();
            }
} else {
    echo "Falta a classe <a href=\"http://www.sistemasgerenciais.com/sgmkt_express\" target=\"_blank\">sgmkt_express</a>";
}


$ob->Carrega($page);

*/
?>

//EDIT

Desconsiderem o BBCode URL do exemplo de arquivo de config

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,8k
×
×
  • Criar Novo...