HTMLy CMS

Sua fonte de referencia sobre o CMS no idioma português

GitHub deste site

HTMLy CMS em Língua Portuguesa | Temas

Diversas informações acerca dos temas

Disponibilidade de temas

O HTMLy CMS foi concebido com foco em blog, contudo você pode adaptar seu tema para que fique igual a um site pessoal ou empresarial.

Por padrão o pacote de instalação contém os seguintes temas: blog, clean, logs, readable, twentyfifteen e twentysixteen.

Os temas que você pode baixar no site oficial são (do mais recente pro mais antigo): Gridzone, Occasio, Fairy, Moth, Independent Publisher, Casper, Clean Blog, Ignite e Vapor.

Alguns criados por outras pessoas são o BrightSmart-BT3 e o bootstrap-blog.

Você pode baixar os temas que fiz no site fs projetos e ideias.

Alterando um tema

A partir da versão 2.7.7, o tema pode ser alterado na área de administração na barra lateral Configurações -> Configurar -> Geral -> Tema.

Você também pode alterar manualmente no arquivo config/config.ini na linha views.root = "themes/NomePastaTema".

Estrutura padrão do tema

HTMLy usa o mecanismo de template tradicional: tags HTML misturadas com PHP.

Para entender melhor o funcionamento, abra os arquivos dos temas que vem com a instalação do HTMLy e contribua com seu desenvolvimento.

O CMS implementa um modelo de páginas conforme informação abaixo.

themes/nomeDoTema/ /css <- Pasta para colocar os arquivos de estilo /img <- Pasta para as imagens /js <- Pasta para os JavaScripts 404.html.php <- Base para páginas não encontradas 404-search.html.php <- Padrão quando não há nenhum resultado layout.html.php <- Página base para seu tema main.html.php <- Página inicial no-posts.html.php <- Determina o padrão para páginas sem postagens post.html.php <- Apresentação de uma postagem individual profile.html.php <- Página padrão do perfil do autor static.html.php <- Padrão para páginas e sub-páginas estáticas

Quando há necessidade de customizar o tema há outros tipos de modelo como a seguir.

Frente - Somente para a página inicial layout--front.html.php <- somente layout para primeira página static--front.html.php <- conteúdo principal se usarmos a página inicial estática main--front.html.php <- conteúdo principal se usarmos a página inicial dinâmica

Blog - para a URL '/blog' layout--blog.html.php <- layout da página blog main--blog.html.php <- conteúdo principal da página blog

Página estática - exemplo de uma página '/sobre' layout--static.html.php <- modelo para todas páginas estáticas layout--static--sobre.html.php <- modelo somente para a página sobre static--sobre.html.php <- modelo para o conteudo principal da página 'sobre'

Sub Página estática - exemplo de uma página '/sobre/empresa' layout--static--sobre.html.php <- página pai static--sobre.html.php <- conteúdo principal da página pai layout--static--sobre--empresa.html.php <- modelo somente para a página '/sobre/empresa' static--sobre--empresa.html.php <- conteúdo principal da página filha

Postagem de blog - disponível apenas com estilo baseado na categoria layout--post--uncategorized.html.php <- layout para postagens com categoria não categorizada layout--post.html.php <- layout para todas as postagens do blog post--uncategorized.html.php <- conteúdo principal para postagem individual com categoria não categorizada

Categoria - Exemplo de uma categoria não categorizada layout--category.html.php main--category.html.php layout--category--uncategorized.html.php main--category--uncategorized.html.php

Tags - Exemplo de post com a tag github layout--tag.html.php main--tag.html.php layout--tag--github.html.php main--tag--github.html.php

Arquivados layout--archive.html.php main--archive.html.php

Busca layout--search.html.php main--search.html.php

Tipo - Exemplo com o tipo imagem layout--type.html.php main--type.html.php layout--type--image.html.php main--type--image.html.php


Variáveis & Funções de Tema

layout.html.php

Contém a estrutura base do HTML.

  • echo head_contents(); - imprime as tags e metatags de cabeçalho como RSS, charset, viewport dentre outros;
  • echo $title . ' ' . $description .' ' . $canonical; - imprime o título, a descrição e o meta canônico da página;
  • site_url() - informa a URL do site;

  • facebook() - imprime o script do Facebook, se utilizarmos seu comentário
    Necessário habilitar no Painel de Controle em Configurações->Configurar->Widget->Comentários e selecionarmos Facebook, e inserir o Facebook App Id

  • login() - utilizado para verificação se está logado;
  • toolbar() - mostra a barra de ferramentas no topo;
  • is_index() - checa se a página atual é a inicial;

  • blog_title() / blog_tagline() / blog_description() - na sequencia informa imprime o título, o slogan e a descrição do blog;
  • content() - imprime o conteúdo principal de outro arquivo modelo como main.html.php ou post.html.php;
  • copyright() - informa um aviso de direitos autorais e link de crédito;

  • analytics() - imprime o Google Analytics.
    Configure no site do Google e depois vá no Painel de Controle em Configurações->Configurar->Widget->Google Analytics e preencha os campos.
main.html.php

Este arquivo de modelo lida com índice de postagens como na página inicial dinâmica, tags, categorias, arquivo e resultado de pesquisa.

  • $posts - contém a coleção de resultados das páginas; utilize foreach($posts as $p){...} e retorne as variáveis
    $p->url
    $p->title
    $p->date
    $p->body
    $p->description
    $p->tag
    $p->category
    $p->author
    $p->authorUrl
    $p->related
    $p->views
    $p->type
    $p->file
    $p->image
    $p->video
    $p->audio
    $p->quote
    $p->link
    
    * na versão 2.8 - $p->video agora retorna apenas o link do vídeo, para obter o ID do vídeo, utilize get_video_id($p->video).
    * na versão 2.8.1 foi introduzido as variáveis: $p->readTime, $p->authorName, $p->authorAbout para o tema.


  • get_teaser($p->body, $p->url) - imprime o resumo, se estiver setado nas configurações o teaser.type como 'trimmed', caso contrário imprime todo o artigo;
  • $category->title / $category->body - título e conteúdo da categoria;

  • $tag->title / $archive->title / $search->title - título da tag, título dos arquivados e da busca;
  • $pagination['prev'] / $pagination['next'] / $page / $pagination['pagenum'] - variáveis de paginação;
  • $pagination['html'] - renderiza a paginação completa;
  • $breadcrumb - imprime o breadcrumb;

  • disqus_count() - mostra a numeração de comentários do Disqus.
post.html.php

Na página de postagem única as variáveis disponíveis são as mencionadas abaixo.

  • Por exemplo: foreach($posts as $p){...}
    $p->url
    $p->title
    $p->date
    $p->body
    $p->description
    $p->tag
    $p->category
    $p->author
    $p->authorUrl
    $p->related
    $p->views
    $p->type
    $p->file
    $p->image
    $p->video
    $p->audio
    $p->quote
    $p->link
    
    * na versão 2.8 - $p->video agora retorna apenas o link do vídeo, para obter o ID do vídeo, utilize get_video_id ($p->video).

  • $prev / $next - para navegação na postagem;
  • $post / $next - as duas coleções contém todas as variável como em $p descrita acima, exemplo: $prev['url'] / $prev['image'];

  • $breadcrumb / disqus($p->title, $p->url) / disqus_count() - para navegação, o comentário disqus e sua contagem;
  • get_related($p->related) - referente aos posts relacionados;
static.html.php

Para páginas estáticas as variáveis mais comuns são: $p->title / $p->url / $p->body

profile.html.php

Para a página de perfil temos: $name / $about / $posts. A variável $posts funciona como em main.html.php.

Outros arquivos modelos

Geralmente contém apenas tags HTML, ou por exemplo um widget de pesquisa: search()


Recursos de tema avançado

HTMLy pode listar quase qualquer postagem com base em tag, categoria, autor ou tipo. Você só precisa ler o /system/includes/functions.php para saber a função correta para customizar seu próprio widget.