Estrutura do FlatPress CMS
Tecnologias
Basicamente as tecnologias utilizadas no CMS são: arquivos HTML, CSS, JavaScript e PHP.
Para o conteúdo é utilizado o SCEditor
Frameworks e Bibliotecas: Smarty Template Engine, BBCode Parser, jQuery, jQuery UI, SlimBox2 e PhotoSwipe.
Arquivos suportados para upload jpg, jpeg, gif e png
Banco de dados
Abaixo de forma resumida como é estruturado os arquivos da pasta content dentro da fp-content.
[content]
|
|-- [$year] <- 2 dígitos para o ID do ano ('05' para 2005)
| |
| |-- [$month] <- dois dígitos para o ID do mês ('01' para Janeiro)
| |
| |-- entryYYMMDD-HHMMSS.txt
| |-- [entryYYMMDD-HHMMSS]
| |
| |-- rating.txt
| |-- view_counter.txt
| |-- [comments]
| |
| |-- commentYYMMDD-HHMMSS.txt
|
|-- [static]
| |
| |-- namepage.txt
|
|-- [draft]
| |
| |-- entryYYMMDD-HHMMSS.txt
|
|-- categories.txt
|-- categories_enconded.dat
A entrada entryYYMMDD-HHMMSS.txt deve ser única e, portanto, pode ser considerado como o campo ID de uma tabela em um banco de dados.
Para postagem comum, rascunho e página estática o formato padrão de conteúdo do arquivo entry***.txt é separado por uma palavra chave e pelo caractere PIPE '|'. Ao salvar ou pré-visualizar o '|' será convertido para '|'. A posição de um campo dentro de um arquivo não importa. O exemplo abaixo é da página estática About.
SUBJECT|About|CONTENT|Write something about yourself here. ([url=admin.php?p=static&action=write&page=about]Edit me![/url])|DATE|1650311388|VERSION|fp-1.2.1|
- SUBJECT|About| - A chave SUBJECT informa após o '|' o título dessa página, nesse caso 'About'
Esta é a única chave obrigatória, as demais abaixo são opcionais - CONTENT|Write ...| - Refere-se ao conteúdo até encontrar outro '|'
- DATE|1650311388| - Data de publicação no formato unix timestamp
Este campo não será atualizado quando você editar uma página - VERSION|fp-1.2.1| - Informa a versão do CMS
Podemos também ter os campos abaixo:
- AUTHOR|NomeDoAutor| - Quem foi o autor que publicou essa página
- CATEGORIES|draft,commslock,1,5| - Número de identificação da categoria à qual uma página pertence, rascunho ou quando os comentários são permitidos. Os valores múltiplos são separados por vírgula. Para esse exemplo significa que essa página é um rascunho 'draft', os comentários estão bloqueados 'commslock' e é arquivado nas categorias 1 e 5.
No que tange a comentários "comment***.txt", além dos campos CONTENT, DATE e VERSION são adicionais:
- NAME|Nome| - O nome de quem comentou
- EMAIL|visitante@seusite.com.br| - Seu endereço de e-mail (se fornecido)
- URL|https://sitevisitante.com.br| - Seu endereço da web (se fornecido)
- IP-ADDRESS|194.117.254.64| - O endereço IP de quem comentou
Organização versão 1.2.1 default
De forma resumida:
admin/ <-- Pasta com arquivos voltados ao painel de administração
docs/ <-- Algumas informações de documentação
fp-content/ <-- Contém informações do usuário, postagens, imagens dentre outros
Ao término da instalação essa pasta fica vazia
fp-defaults/ <-- Guarda as informações de configuração padrão
fp-includes/ <-- Contém os arquivos do coração do CMS e o Smarty
fp-interface/ <-- Contém a camada de apresentação, temas e traduções
fp-plugins/ <-- Apresenta os plugins e arquivos de idiomas dos mesmos
setup/ <-- Pasta de instalação do FlatPress
De forma completa:
/ <-- Diretório raiz. Arquivos PHP de inicialização do sistema.
CHANGELOG.md
CONTRIBUTORS.md
LICENSE.md
README.md
setup.php
admin.php
blog.php
comments.php
contact.php
defaults.php
index.php
login.php
rss.php
search.php
sitemap.php
static.php
admin/
admin-inline.tpl
index.php
main.php
main.tpl
imgs/
config.png
entries.png
maintain.png
newentry.png
plugins.png
widgets.png
includes/
panels.prototypes.php
panels/
admin.defaultpanels.php
config/
admin.config.php
admin.config.tpl
entry/
admin.entry.cats.php
admin.entry.cats.tpl
admin.entry.commedit.php
admin.entry.commedit.tpl
admin.entry.commentlist.php
admin.entry.commentlist.tpl
admin.entry.conf.php
admin.entry.delete.php
admin.entry.delete.tpl
admin.entry.list.php
admin.entry.list.tpl
admin.entry.php
admin.entry.stats.php
admin.entry.stats.tpl
admin.entry.tpl
admin.entry.write.php
admin.entry.write.tpl
shared.entry.form.php
shared.entry.form.tpl
main/
admin.main.tpl
maintain/
admin.maintain.php
admin.maintain.tpl
admin.maintain.updates.tpl
plugin/
admin.plugin.php
admin.plugin.tpl
static/
admin.static.delete.php
admin.static.delete.tpl
admin.static.list.php
admin.static.list.tpl
admin.static.php
admin.static.write.php
admin.static.write.tpl
themes/
admin.themes.php
admin.themes.style.php
admin.themes.style.tpl
admin.themes.tpl
preview-default.png
uploader/
admin.uploader.browse.php
admin.uploader.browse.tpl
admin.uploader.php
admin.uploader.thumb.php
admin.uploader.tpl
widgets/
admin.widgets.default.php
admin.widgets.default.tpl
admin.widgets.js
admin.widgets.php
admin.widgets.raw.php
admin.widgets.raw.tpl
res/
admin.css
docs/
README-SmartyValidate
spb_db.txt
fp-content/
delete.me
%%setup.lock <-- Evita nova instalação
caso tenha perdido a senha, delete esse arquivo,
faça backup da pasta 'fp-content/config/', execute o setup.php
e recrie a conta do mesmo modo anterior, após isso restaure
a pasta 'fp-content/config/' novamente
attachs/
cache/
config/
hashsalt.conf.php
plugins.conf.php
settings.conf.php
widgets.conf.php
content/ <-- conteúdo
categories.txt
categories_encoded.dat
drafts/
entry220702-000622.txt
static/
about.txt
menu.txt
22/ <-- ano em 2 dígitos
06/ <-- mês em 2 dígitos
07/
entry220701-194136.txt <-- arquivo com conteúdo da postagem no
formato 'entryANOmesDIA-hora.txt' ou 'entryYYMMDD-HHMMSS.txt'
images/
imguploaded.jpg
index/
index-0.dat
index.strings.dat
plugin_commentcenter/
users/
idusuario.php <-- Onde idusuario é o nome de usuário que foi escolhido na instalação
fp-defaults/
plugins.conf.php
settings-defaults.php
widgets.conf.php
fp-includes/
core/
core.administration.php
core.blogdb.php
core.bplustree.class.php
core.cache.php
core.comment.php
core.config.php
core.cookie.php
core.date.php
core.draft.php
core.entry.php
core.fileio.php
core.filesystem.php
core.fpdb.class.php
core.language.php
core.layout.php
core.plugins.php
core.session.php
core.static.php
core.system.php
core.theme.php
core.users.php
core.utils.php
core.widgets.php
core.wp-default-filters.php
core.wp-formatting.php
core.wp-functions.php
core.wp-functions-compat.php
core.wp-options.php
core.wp-pluggable-funcs.php
core.wp-pluggable-funcs_old.php
core.wp-plugin-interface.php
function.list_categories.php
includes.php
smarty/
Smarty.class.php
Smarty_Compiler.class.php
SmartyValidate.class.php
Config_File.class.php
debug.tpl
internals/
plugins/
fp-interface/ <-- Detalhes no link Temas
fp-plugins/ <-- Detalhes no link Extensões
setup/
index.php
main.php
imgs/
loading.gif
logo-small.gif
shade.png
tile.png
lang/
lang.cs-cz.php
...
lang.pt-br.php
lib/
main.lib.php
step1.lib.php
step2.lib.php
res/
setup.css
tpls/
footer.tpl.php
header.tpl.php
locked.tpl.php
step1.tpl.php
step2.tpl.php
step3.tpl.php