Montando seu bloco de notas online

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.

Exemplo do bloco de notas online implementado com esse post

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.

Compartilhe :)

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.