Um bloco de notas é muito útil para agregar suas tarefas a serem realizadas, guardar ideias e deixar à mão textos e anotações utilizadas constantemente (mas difíceis de lembrar). Disponibilizar essas notas na internet, usando acesso controlado por usuário e senha, permite consultá-las a partir de qualquer computador, bastando apenas acessar o site e digitar as credenciais.
Existem várias opções desse serviço em nuvens (clouds), como o Evernote (provavelmente o mais popular) e o iTextpad (com calendário e abas para dividir as tarefas). Mas e se você puder aproveitar o serviço de hospedagem do seu site para instalar esse serviço? No wordpress, existem plugins para guardar anotações e calendário, ambos no painel de controle do próprio WP.
No github, estão disponíveis códigos para edição e download de diferentes sistemas de “notepad”. Um deles, o textpad, salva as anotações no “LocalStorage” do próprio navegador (ou seja, se limpar o cache, apaga tudo), mas é muito útil para trabalhar rapidamente. Esse outro, o Markdown-based Notepad, também é interessante.
Tutorial de instalação
Os procedimento a seguir são para implementação do código do github PHP notepad, escolhido por sua simplicidade. Ele funciona da seguinte forma: você digita o link no navegador e abre uma tela em branco para ler/escrever textos, que são salvos em uma tabela MySQL conforme é digitado. São somente três arquivos, a serem copiados para uma pasta criada em seu servidor:
1) Edite o arquivo “config.php” para conter o nome da base de dados (database), nome do usuário (independe do usuário para acessar o sistema), senha, endereço da hospedagem do banco de dados (verifique em seu servidor) e um prefixo para a tabela (no PHP, será completado por “notes”). Geralmente o nome da base de dados, usuário e prefixo devem começar com a ID do usuário dentro do sistema de hospedagem.
2) O arquivo “index.php” contém o código principal e não necessita ser editado. Em tese, ele cria a tabela a ser utilizada, mas se tiver problemas com permissão, basta seguir as instruções contidas no código e usar o phpmyadmin para criar a base de dados e a tabela. Isso pode ser feito clicando diretamente na interface gráfica ou usando a seguinte query:
CREATE TABLE DB_NAME.DB_TABLE ( time int(10) unsigned NOT NULL, ip varchar(15) NOT NULL DEFAULT '', value longtext NOT NULL DEFAULT '', u varchar(255) NOT NULL DEFAULT '' ) ENGINE=MyISAM;
Altere os campos DB_NAME e DB_TABLE para os nomes utilizados no arquivo “config.php”. O “time” é o número de segundos desde o início da Era Unix (1970), “ip” é o número de IP que solicitou a gravação e “value” contém o registro (suas anotações).
3) O arquivo “.htaccess” serve para questões de redirecionamento, mas aqui ele será editado para restringir o acesso ao diretório através de usuário e senha (isso não consta do código original).
O primeiro bloco controla o acesso ao diretório onde está rodando o bloco de notas: a diretiva “AuthType Basic” informa ao servidor qual o tipo de processamento em uso e “Basic” é o mais comum e perfeitamente adequado para quase qualquer propósito; “AuthName” define o título da caixa de login; “AuthUserFile” define a localização (caminho completo) do arquivo .htpasswd e “Require valid-user” garante acesso a todos a esse arquivo.
O segundo bloco vem do código original: ele define a página inicial como “index.php”; a diretiva “RewriteCond” adiciona condições para aplicar ou não o redirecionamento (as flags !-f e !-d determinam que o redirect só ocorrerá se não existir arquivo ou pasta com a url correspondente) e “RewriteRule” faz a reescrita do URL.
AuthType Basic AuthName "Bloco de notas - acesso restrito" AuthUserFile /caminho_completo/.htpasswd Require valid-user DirectoryIndex index.php RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
O primeiro bloco pode ser gerado pelo painel de controle do seu serviço de hospedagem (opção “diretório protegido por senha”), bastando informar o diretório a ser protegido, nome de usuário e uma senha. Essa senha será criptografada e guardada dentro do arquivo .htpasswd, junto do .htaccess, contendo uma linha com o formato “nome_usuario:senha_criptografada”. Uma alternativa para gerar essa linha é usar o comando “htpasswd -c .htpasswd nome_usuario” no terminal Linux.
Finalmente, após editar os arquivos e criar a base de dados (com a tabela), criar o ciretório no servidor (mesmo nome que consta no “.htaccess”) e copiar os arquivos.
Limpeza da tabela
A cada movimentação do cursor e/ou edição de texto, são adicionadas novas linhas na tabela com todo o conteúdo do bloco de notas. Desse modo, é preciso limpar linhas antigas para evitar um grande aumento do tamanho da tabela. A query a seguir remove todas as linhas mais antigas do que 60 segundos APÓS alguma alteração:
// After insert, delete all rows ancient than $tempo seconds $tempo=time()-60; $mysqli->query("DELETE FROM ".TBL_PREFIX."notes WHERE time < ".$tempo.";");
Insira essas linhas no arquivo “index.php”, dentro do if que realiza o insert (depois de echo “1” e antes de exit).
Para completar, o mesmo arquivo pode ser editado para incluir ícone, título, mudar cores, etc.