Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

reescrever ?id=__ para o título da página armazenado na linha db


Você terá que modificar a linha que gera os links então:
echo "<li><a href='" . BASE_URL . "/index.php?id=$pageID'>$pageTitle</a></li>";

Você pode adicionar o título como separado e não usado &title= parâmetro, que é um bom hack para evitar ter que modificar qualquer outra coisa:
echo "<li><a href='" . BASE_URL . "/index.php?id=$pageID&title=$pageTitle'>$pageTitle</a></li>";

Ou gere 123+title links:
echo "<li><a href='" . BASE_URL . "/index.php?id=$pageID+$pageTitle'>$pageTitle</a></li>";

Isso exigiria adaptar o código real do dispatcher "cms", porque ele precisa separar o id e o título do parâmetro $_GET.

Ou até mesmo substituir todo o index.php?id= apenas com o título:
echo "<li><a href='" . BASE_URL . "/$pageTitle'>$pageTitle</a></li>";

O que, por sua vez, exigiria a implantação de um .htaccess regra (algo como roteamento de URL htaccess para PHP MVC? ). E você teria que modificar o index.php script novamente para procurar o id de title . O que novamente só funcionaria se os títulos em seu banco de dados fossem todos exclusivos.

P.S.:Na verdade, você também deve usar urlencode($pageTitle) . E htmlspecialchars() no $pageTitle que se torna o texto do link.