sábado, 13 de agosto de 2011

Normalização de títulos para arquivos .php utilizando o path e o filename

Atualmente estou construindo minha página pessoal para a web. Tenho minhas motivações: computador novo (um simples HP Mini), bons relacionamentos sociais, inspiração e um grande acréscimo de conhecimento matemático que obtive com meus novos estudos. Na construção das páginas estou utilizando a linguagem PHP e bastante Javascript puro (ou seja, sem libraries, por ora). A motivação disso é simples e sincera: vontade de aprender mais, construindo as 'coisas' do zero.
Com este projeto em andamento pretendo desenvolver algumas aplicações em PHP e Javascript para que possam ser disponibilizadas ao mundo via GitHub.
A seguir demonstro como obtive sucesso em criar uma forma de obter um texto normalizado para ser utilizado como title em minhas páginas .php.

O problema:

Como de costume, gosto de fragmentar as páginas em seções (meta, header, footer e alguma outra que possa vir a ser necessária) chamando-as via include:

<?php include('meta.php'); ?>

Geralmente a seção meta (meta.php) contém o hipertexto relativo a importação de páginas externas (css e js), bem como a configuração das meta tags e afins (doctype e charset, por exemplo). Este arquivo meta.php conterá no início o !DOCTYPE html e no final o fechamento da tag head. Sendo assim, tinha em mente que cada página acessada (por meio dos links de navegação do website [contidos dentro da header.php]) deveria possuir um texto próprio para a tag title a fim de identificar a página acessada (current page) também pelo título. Como fazer isso? Qual a única diferença que o arquivo meta.php poderia identificar/aproveitar? Talvez a url?!!
Então pesquisei formas de encontrar a url e o path do arquivo .php que estava sendo acessado. Encontrei fácil na documentação do PHP. Então desenvolvi a seguinte solução (simples, não?) para ter títulos normalizados na minha tag title. Ou seja, cada página conterá o seu texto distinto (se assim for requerido) com relação a página acessada pelos usuários (home.php, arte.php, contato.php entre outras):

<?php $normalized_filename = ucwords(basename($_SERVER['REQUEST_URI'], '.php')); ?>

A explicação:
Como afirmei a solução é simples! A lógica é a seguinte, quando o usuário estiver, por exemplo, na página contato.php ou home.php, no título da página conterá no mínimo a string Contato ou Home. E claro, a variável $normalized_filename sempre estará disponível para qualquer parte do documento .php. que a hospeda.

Sobre o código e as funções deste:
  • $_SERVER['REQUEST_URI']; - retorna o caminho e o nome do arquivo (tal como /home/www/index.php).
  • basename(path, suffix); - retorna o nome do arquivo (index.php) do caminho especificado (/home/www/index.php) e retira o sufixo que for especificado (.php).
  • ucwords(string); - Faz com que uma string seja apresentada capitalizada, ou seja, com as iniciais em letras maiúsculas.

Nenhum comentário: