Definições, artigos, ficheiros e visitantes do CMS do Total.js e onde fica guardado tudo
Definições
O plugin Settings (settings_read, settings_save; permissão settings) edita a configuração que o CMS guarda nos metadados do site e carrega em CONF a cada arranque:
| Chave | Significado |
|---|---|
name | o nome do site, usado no <title> de todas as páginas exceto / e no nome do ficheiro da cópia de segurança |
url | o endereço público do site; o CMS também o atualiza a partir do host dos pedidos do admin |
smtp | as definições SMTP como texto JSON (server, from, user, password, port); settings_test testa-as |
icon | um ícone para o site |
$tms, secret_tms | publica os eventos por TMS, e o segredo dessa ligação |
op_reqtoken, op_restoken | os tokens de uma aplicação OpenPlatform; quando ambos estão definidos, o início de sessão no admin é substituído pelo do OpenPlatform |
totalapi | uma chave para os serviços da API do Total.js |
Os plugins podem acrescentar mais chaves, que aparecem no mesmo formulário. Os valores que vivem no ficheiro config ($api, cdn, salt e, se o acrescentar, token) não se editam aqui.
Artigos
O plugin Posts é um pequeno gestor de artigos, guardados num ficheiro NoSQL próprio dentro do armazenamento. Um artigo tem name, category, picture, summary, body, reference, icon, color, hidden e date; o admin lista-os do mais recente para o mais antigo (100 por página) e posts_categories devolve as categorias em uso. Os artigos são dados para o seu próprio código: o renderizador público do CMS (controllers/default.js) não os imprime, por isso um widget ou uma rota sua tem de os ler e desenhar.
Ficheiros
O plugin Files guarda os envios no armazenamento de ficheiros e marca-os como públicos. GET /download/<id>.<ext> serve um ficheiro público (só os públicos; os restantes respondem 404). Para imagens, ?s=<percent> devolve um JPEG mais pequeno (o valor tem de estar entre 10 e 80, com qualidade 80), e ?download=1 força a transferência. As rotas de envio e os seus limites estão em a API do admin.
Visitantes e o painel
O módulo modules/visitors.js conta as visitas das páginas públicas através do script /visitors.js que cada página inclui: visitantes únicos, visualizações, navegadores, referentes, tráfego de pesquisa, social e direto, móvel e computador, horas do dia e as pessoas online (um visitante está online durante 20 minutos sem atividade). O plugin Dashboard desenha esses números a partir de dashboard_stats, dashboard_online, dashboard_browsers, dashboard_referers e dashboard_pages.
OpenPlatform
Quando op_reqtoken e op_restoken estão definidos, o CMS inicia a sessão das pessoas através do OpenPlatform (módulo modules/openplatform.js) e cada plugin acrescenta a sua permissão à lista que o OpenPlatform mostra ao atribuir grupos: pages, layouts, widgets, navigation, posts, files, redirects, variables, settings e admin. Lembre-se da regra do OpenPlatform: uma aplicação só é visível para os grupos que lhe atribuir.
O modelo de dados
MAIN.db guarda os metadados do site (pages, layouts, widgets, redirects, vars, nav, config e storage) e é gravado como um único documento JSON chamado meta no armazenamento de ficheiros. O HTML de cada página e layout é um ficheiro desse armazenamento cujo nome é o id da página ou do layout. FUNC.load() lê os metadados no arranque, compila os widgets (executando a sua função install) e reconstrói as caches; FUNC.save() volta a escrevê-los. Por isso uma cópia de segurança do armazenamento é uma cópia de segurança do site.