Demo de SSCK NG

SSCK NG (Simple Site Construction Kit NG).

Arquivos

ssckng-album.php
Implementa a classe TSSAlbum que gera album simples a partir do arquivo contido na pasta. Localização é suportado se o objeto TSSL10n for fornecido
ssckng-csvlist-reader.php
Implementa a classe TSSCsvList que gera a list a partido do arquivo CSV ou array. Ele suporta localização se o objeto TSSL10n for fornecido.
ssckng-csvtable-reader.php
Implementa a classe TSSCsvTable que gera a tabela a partido do arquivo CSV ou array. Ele suporta localização se o objeto TSSL10n for fornecido
ssckng-file-sender.ph
Implementa a classe TSSDownload para enviar arquivos, com o objetivo de implementar o servidor de download. Atenção: Para implementar o servidor de 'download', evite de permitir download de arquivos genericos (por exemplo, permitir download somente dos arquivos que está na lista) para prevenir download dos arquivos protegidos como php ou similar..
ssckng-html-reader.php
Implementa a class TSSHtml para ler e mostrar parte do arquivo html delimitado pelo tag desejado.
ssckng-l10n.php
Implementa a classe TSSL10n que é um módulo de tradução do string para implementar a funcionalidade de localização
ssckng-menu.php
Implementa a classe TSSMenu que cria o elemento de navegação a partir do arquivo json ou 'array'. Ele suporta a localização se o objeto TSSL10n for fornecido./dd>
ssckng-page-counter
Providencia a classe de contagem do acesso as páginas TSSPageCounter que pode ser usado para contador próprio das páginas ou de downloads.
ssckng-page-gerenator.php
A classe principal TSSPageGenerator que pode ser usado para gerar páginas, usando o arquivo de configuração no formato json. Com ele, poderá converter conjunto de páginas estáticas HTML (ou gerado pelo PHP) facilmente nas páginas com menu de navegação e similar. A parte do corpo da página gerada são divididas em 'header contents', 'navegation contents', 'main contents', 'aside contents', e 'footer contents'. Cada um delas podem ser gerados a partir da parte do HTML e/ou pelo PHP. Menu e seleção dos idiomas (se for usada) serão gerados a partir do arquivo json. Depende do ssckng-l10n.php, ssckng-menu.php, e ssckng-html-reader.php.

Estrutura da pagina gerada pelo TSSPageGenerator

O método principal é 'Generate()'

"PREAMBLE"
  Prepara o módulo L10n (para localização).
  Executa o código de PreamblePhpFile (arquivo PHP) para propósito de suporte a programação. Por exemplo, ele pode efetuar a verificação de autenticação do usuário, ou carregar arquivo de traduções adicionais não especificados o arquivo de configuração.

<HEAD>
  Parte de 'head' do HeadHtmlFile (arquivo HTML)
  Conteúdo (conteúdo de 'head') gerado dinamicamente peloHeaderPhpFile (arquivo PHP)

  Url adicional de CSS do HeaderCssUrl
  Titulo do PageTitle

</HEAD>

<BODY>
<HEADER id="HeaderContents">
  Parte de 'header' de HeaderContentsHtmlFile (arquivo HTML)
  (Se HeaderContentsHtmlFile for 'true', pega do arquivo HeadHtmlFile)
  Conteúdo gerado dinamicamente de HeaderContentsPhpFile (arquivo PHP)
</HEADER>
<NAV id="L10nSelectionContents">
  Menu gerado de L10nMenuFile (arquivo JSON)
  Conteúdo gerado dinamicamente (como o menu dinâmico) pelo L10nMenuPhpFile (arquivo PHP)
  Observação: Se L10nLangOptionName for vazio, ignora este elemento na página.
  Observação: Se L10nSelectionOnTop === true, coloca eles elemento antes do 'HeaderContents'
</NAV>
<NAV id="NavegationContents">
  Menu gerado de MenuFile (arquivo JSON)
  Conteúdo gerado dinamicamente (como o menu dinâmico) de MenuPhpFile (arquivo PHP)
</NAV>
<MAIN id="MainContents">
  Parte de 'main' do MainContentsHtmlFile (arquivo HTML)
  Conteúdo gerado dinamicamente de MainContentsPhpFile (arquivo PHP)
</MAIN>
<ASIDE id="ASideContents">
  Parte de 'aside' (primeira ocorrencia) de ASideContentsHtmlFile (arquivo HTML)
  Conteúdo gerado dinamicamente de AsideContentsPhpFile (arquivo PHP)
</ASIDE>
  Observação: Se ASideBeforeMain === true, coloca este elemento antes de 'MainContents'
<NAV id="BottomNavegationContents">
  Menu gerado de BottomMenuFile (arquivo JSON)
  Conteúdo gerado dinamicamente (como o menu dinâmico) pelo BottomMenuPhpFile (arquivo PHP)
</NAV>
<FOOTER id="FooterContents">
  Parte de 'footer' do FooterContentsHtmlFile (arquivo HTML)
  Conteúdo gerado dinamicamente pelo FooterContentsPhpFile (PHP file)
</FOOTER>
</BODY>


Arquivo de configuração para TSSPageGenerator

O arquivo de configuração é um arquivo JSON com o mesmmo nome do script, que fica na mesma pasta do script.

Variáveis para arquivo de configuração:

Note que, a variável 'Foo' dentro da classe é 'FFoo' (precedido pelo 'F'). Assim, '$this->GetFoo()' toma o valor de '$this->FFoo', que no arquivo de configuração será especificada como 'Foo'. Esta regra se aplica a todas as outras classes.

ContentsFolder
Assume que o arquivos json, html e php são armazenado aqui.
L10nFolder
Se desejar armazenar arquivos de localização (arquivos de tradução e/ou html traduzidos) na pasta diferente da pasta 'ContentsFolder', configure esta variável.
HtmlFileExtension
Extensão padrão para arquivo html
JsonFileExtension
Extensão padrão para arquivos json
PhpFileExtension
Extensão padrão para arquivos php
UseHtml4ForInput
Se for 'true' então 'header contents', 'main contents', 'aside contents', e 'footer contents' são considerados parte do arquivo html dlimitados pelo tag 'body' em vez dos tags correspondentes.
PreamblePhpFile
Este arquivo é carregado bem no começo, antes de iniciar a geração da página. Pode ser usado para checar a autenticação do usuário e similar. Note que o módulo de localização 'L10n' já está preparada neste ponto.
HeadHtmlFile
Parte de 'head' deste arquivo HTML é usado para gerar 'head' da página.
HeadPhpFile
Conteúdo dinâmico gerado pelo este arquivo PHP será inserido no 'head' da página.
PageTitle
Se presente, este será o título da página.
HeadCssUrl
string (para url do unico arquivo css) ou array de string (url's para múltiplos arquivos css)
CssUrlPrefix
Se for true (padrão), assume o valor de FContentsFolder. Se ele não for vazio, o css que não seja de url absoluto, são relativamente ao CssUrlPrefix.
BodyOptions
Se não for vazio, passa como opção do tag 'body'
Title
Titulo do conteúdo colocado em 'header'. Se o seu valor for true, assume que o título é mesmo de 'PageTitle'
TitleEnclosure
Tag para delimitar 'Title', para fins de formatação pelo css.
TitleOptions
If not empty, passed to 'TitleEnclosure' tag.
HeaderContentsOptions
Se não for vazio, ele será passado como opção do tag 'header'.
HeaderContentsHtmlFile
A parte de 'header' deste arquivo HTML será usada como conteúdo de 'header'.
HeaderContentsPhpFile
Conteúdo dinâmico gerado pelo este arquivo PHP será inserido no 'header'.
L10nSelectionContentsOptions
Se não for vazio, será passado para o tag 'nav' do 'L10nSelection'
L10nSelectionOnTop
Se 'true', o menu 'L10nSelection' vem antes do 'header'.
L10nLangOptionName
Se não for vazio, ativará o menu de seleção de idiomas ('L10nSelectionContents'). Este nome será usado para passar o código de idioma de uma página para outra pelo método GET. Se for vazio, menu de seleção de idiomas ('L10nSelectionContents') não será gerado.
L10nMenuToagle
Se for 'true', gera o código de esconder/mostrar o menu, caso o parâmetro de 'toagle' for especificado no arquivo de menu.
L10nMenuType
Tipo de menu: 'ul', 'ol', 'div', ou 'span'
L10nMenuId
Id para o tag especificado em 'L10nMenuType', necessário quando 'L10nMenuToagle' for true. Também pode ser usado para formatar L10nSelection menu usando css.
L10nMenuOptions
Se não for vazio, será passado para o tag especificado em 'L10nMenuType'.
L10nCurrentLang
Id (código do idioma) para módulo de locatlização L10n e menu de seleção. Seu valor será obtido automaticamente da variável passado em URL (método GET), cuja nome é dado em L10nLangOptionName. Se ele estiver ausente, toma o valor do campo do arquivo de configuração, de nome especificado em L10nLangOptionName. Se ambos estiverem ausentes, manterá este valor (Assim, normalmente, não configura este valor manualmente).
L10nMenuFile
Arquivo JSON que contém especificação do menu 'L10NSelection'
L10nMenuPhpFile
O conteúdo gerado dinamicamente pelo este arquivo PHP será incluido dentro do 'nav' correspondente ao menu 'L10nSelection'.
NavegationContentsOptions
Se não for vazio, será passado para tag 'nav' do menu de nvaegação.
MenuToagle
Se for 'true', gerá o código de esconder/mostrar o menu, caso o parãmetro de 'toagle' for especificado no arquivo de menu.
MenuType
Tipo de menu: 'ul', 'ol', 'div', ou 'span'
MenuId
Id para o tag especificado em 'MenuType', necessário quando 'MenuToagle' for true. Também pode ser usado para formatar menu de navegação usando css.
MenuOptions
Se não for vazio, será passado para tag especificado em 'MenuType'.
SubMenuOptions
Se não for vazio, será passado ao tag specificado em 'MenuType' para sub menus.
MenuDisabledItem
item, ou list de itens (se tiver sub menu), que desativa do menu.
MenuFile
Arquivo JSON que contém a especificação do menude navegação.
MenuPhpFile
Conteúdo dinâmico gerado pelo este arquivo PHP será incluido dentro de 'nav' correspondente ao menu de navegação.
MainContentsOptions
Se não for vazio, será passado para o tag 'main'.
MainContentsHtmlFile
O conteúdo delimitado pelo tag 'main' deste arquivo HTML será usada para 'MainContents' da página.
MainContentsPhpFile
O conteúdo gerado dinamicamente pelo este aruivo PHP será inserido dentro do 'MainContents'.
ASideBeforeMain
Se for 'true', coloca o 'ASideContents' antes do 'MainContents'.
ASideContentsOptions
Se não for vazio, será passado para o tag 'aside'.
ASideContentsHtmlFile
A parte delimitada pela primeira ocorrência do tag 'aside', deste arquivo HTMLserá usada para 'ASideContents'.
ASideContentsPhpFile
O conteúdo dinâico gerado pelo este arquivo pho será inserido dentro do 'ASideContens'.
BottomNavegationContentsOptions
Se não for vazio, será passado para o tag 'nav' do menu 'BottomNavegation'
BottomMenuToagle
Se for 'true', gerará o código de esconder/mostrar o 'Bottommenu', caso os parãmetros de 'toagle' for especificado no arquivo de menu.
BottomMenuType
Tipo do menu: 'ul', 'ol', 'div', ou 'span'
BottomMenuId
Id para o tag especificado em 'BottomMenuType', necessário quando 'BottomMenuToagle' for true. Também pode ser usado para formatar bottom menu usando css.
BottomMenuOptions
Se não for vazio, será passado para o tag especificado em 'BottomMenuType'
BottomSubMenuOptions
Se não for vazio, será passado ao tag specificado em 'BottomMenuType' para sub menus.
BottomMenuDisabledItem
item, ou list de itens (caso de sub menu), que será desabilitada do 'BottomMenu'
BottomMenuFile
O arquivo JSON que contém a especificação do 'BottomMenu'.
BottomMenuPhpFile
O conteúdo gerado dinamicamente deste arquivo php será incluido dentro do tag 'nav' correspondente ao 'BottomMenu'.
FooterContentsOptions
Se não for vazio, será passado para tag 'footer'.
FooterContentsHtmlFile
O conteúdo delimitado pela primeira ocorrencia do tag 'footer' deste arquivo HTML será usado para 'FooterContents' da página.
FooterContentsPhpFile
O conteúdo dinâmico gerado por este arquivo php será inserido dentro do 'FooterContents'.
L10nFile
Arquivo de localização (tradução), ou lista de arquivos de localizações principais. Note que, após estes arquivos, será efetuado uma busca pelo arquivo com mesmo nome do 'script' com extensão json e adiciona sobre este. Se necessário, $this->FL10n é a classe de localização que pode ser usada dentro do arquivo php.

Algumas observações sobre TSSCKPageGenerator

Outros módulos

Os módulos que podem ser usados com ou sem SSCKPageGenerator.

TSSAlbum

Esta classe pode ser usado para gerar automaticamente um album de imagem;video a partir de conteúdo de uma pasta. O método principal é 'Generate()', que aceita o argumento opcional qque é o título. Para imagem;video dentro da subpasta, o nome do subpasta será usado para título do conjunto. Se 'L10n' for especificado, aplica o 'FL10n->str()' para efetuar a localização. Para gerar as miniaturas para conteúdos do album na plataforma linux, use o 'mkthumb.sh' da pasta 'tool'.

Variáveis

Folder
A pasta raiz que contém imagem/video. O método 'Generate()' busca nesta pasta e nas suas subpastas.
Options
Caso não for vazio, será usado como opção para tag título do album que é '<h3>'
AlbumEnclosureTag
Se não for vazio, usa para delimitar o album e sub albuns (bloco dentro das subpastas)
AlbumOptions
Optição para o tag especificado em AlbumEnclosureTag para album inteiro.
SubAlbumOptions
Optioções para tag especificado em AlbumEnclosureTag para sub albuns (bloco dentro das subpastas).
ImageExtensions
Lista de extensões das imagens admitidas.
MovieExtensions
Lista de extensões admitidos para videos.
ImageOptions
Se não for vazio, será uado como opção do tag '<img>' para miniatura de imagens.
MovieOptions
Caso não for vazio, será usado como opção para o tag '$lt;img>' para miniatura de videos.
ImageUrlOptions
Caso não for vazio, será usado como optição para o tag '<a>' que tem o destino como imagem
MovieUrlOptions
Caso não vazio, será usado como opção para o tag '$lt;a>' que tem o destino como video.
MovieAfterThumbOptions
Opção para o tag 'span' que sucede o tag 'img' da miniatura de video. permitindo a formatação pelo css (como sobrepor ícone de 'play'.
ThumbFolder
Defina caso quer que miniaturas da imagem/video fiquem na pasta raiz diferente da imagem/video do álbum em si. Caso for 'false', usará a mesma pasta raiz que do álbum.
ThumbSubFolder
Subpasta para armazenar miniaturas. É recomendado ter o valor no caso de 'ThumbFolder' ser 'false'.
ThumbPrefix
Prefixo do nome de miniaturas para diferenciar da imagem/video.
ThumbPostfix
Posfixo par anome de miniaturas par adiferenciar do nome da imagem;video.
ThumbDisplayWidth
Largura da imagem de miniatura. Recomendado que tenha o valor, principalmente se nem todas imagens tenham a miniatura.
L10n
Módulo de localização que tem o método 'str()' para traduzir o string. Se ele não for null, tentará a tradução de titulos do album e titulo de conjuntos.

TSSCsvListReader

Esta classe pode ser usado para gerar lista a partir do arquivo csv pelo método 'Read()' (ou do 'array' fornecido, pelo método 'Print()').

Variáveis

FileName
Nome do arquivo CSV para gerar a lista.
Separator
Separador de colunas no arquivo csv. Normalmente, vírgula ou ponto e vírgula.
Enclosure
Delimitador para elementos de colunas no arquivo csv. Normalmente, aspas.
TrimmingChars
Caracteres a serem ignorados no começo do elemento das colunas. Normalmente, sem.
OnlyEmptyItemsIsEmptyRow
Caso todos elementos de colunas são strings vazios, assume que é uma linha vazia (que separ auma tabela da outra).
Type
Tipo de lista que podem ser 'ul', 'ol', ou 'dl'.
HeadFragmentEnclosureTag
Tag usado para delimiar o primeiro fragmento (primeira coluna no arquivo csv) do item (linha do arquivo csv). Normalmente, é 'span'.
HeadFragmentOptions
Se não for empty, será usado como opção para tag definido em 'FirstFragmentEnclosureTag' (se for do tipo 'dl', será opção de 'dt').
TailFragmentEnclosureTag
Tag usado para delimiar a parte de 'tail' (exceto o primeiro fragmento -- primeira coluna no arquivo csv) do item. Normalmente, é 'span'.
TailFragmentOptions
Se não for empty, será usado como opção para tag definido em 'FirstFragmentEnclosureTag' (se for do tipo 'dl', será opção de 'dd').
FragmentSeparator
Inserido entre dois fragmentos (colunas no arquivo csv) na parte de tail. Se HeadFragmentEnclosureTag foor empty, será usado também entre primeiro e segundo fragmento. Normalmente, é espaço.
Link
Se true, a (2i+1)-ésima coluna no arquivo csv (se não for vazio), será usado coo URL do fragmento de (2i)-ésima coluna do arquivo csv.
LinkPrefix
Este string será prefixado em todas url's que não sejam url absoluto, se Link for true.
NumBlocks
Número de blocos a serem lidos. É assumido que a linha vazia separa um bloco do outro.
CommentMark
Caso não for vazio, toda linha iniciada com este caracter será desconsiderada (comentário). Note que só terá efetito quando este caracter for a primeira da linha. Se for delimitado pelo aspas ou similar, ou precedido de espços ou simlar, não será considerado como linha de ocmentário.
L10n
Módulo de localização que implementa o método 'str()' para traduzir o string. Se não for 'null', tentará traduzir o cabeçalho da tabela (assim como o título).
TranslateFirstFragment
Tentará traduzir o primeiro fragmento (primeira coluna no arquivo csv) de cada item (linha do arquivo csv).
TranslateAllFirstFragment
Se for 'true', tentará traduzir todo fragmento (colunas do arquivo csv) em vez do primeiro fragmento.

TSSCsvTableReader

Esta classe pode ser usado para gerar tabela a partir do arquivo csv pelo método 'Read()' (ou do 'array' fornecido, pelo método 'Print()').

Variáveis

FileName
Nome do arquivo CSV para gerar a tabela.
Separator
Separador de colunas. Normalmente, vírgula ou ponto e vírgula.
Enclosure
Delimitador para elementos de colunas. Normalmente, aspas.
RowSeparator
Separador de linhas. Normalmente, caractere de nova linha.
TrimmingChars
Caracteres a serem ignorados no começo do elemento das colunas. Normalmente, sem.
OnlyEmptyItemsIsEmptyRow
Caso todos elementos de colunas são strings vazios, assume que é uma linha vazia (que separ auma tabela da outra).
ContentsOnly
Se for 'true', lê e gera as linhas da tabela sem o tag 'table' e 'tbody'. Se linha de cabeçalho ou rodapé estiverem presentes, ignora na leitura (Na impressão de array pelo Print, se tiver linha de cabeçalho ou de rodapé, ignora). Útil para complementar a tabela já existente.
SkipHeadRow
Caso for 'true', pula a leitura da linha de cabeçãlho da tabela (a primeira linha da tabela).
FootRow
Se for 'true', assume que última linha da tabela é linha de rodapé.
SkipFootRow
Se for 'true', pula a leitura de leitura de rodapé da tabela (a última linha).
NumBlocks
Número de blocos a serem lidos. É assumido que a linha vazia separa um bloco do outro.
CommentMark
Caso não for vazio, toda linha iniciada com este caractere será desconsiderada (comentário). Note que só terá efetito quando este caracter for a primeira da linha. Se for delimitado pelo aspas ou similar, ou precedido de espços ou simlar, não será considerado como linha de ocmentário.
Caption
Caso não for vazio, será usado como título de tabela.
L10n
Módulo de localização que implementa o método 'str()' para traduzir o string. Se não for 'null', tentará traduzir o cabeçalho da tabela (assim como o título).
TranslateFirstColumn
Tentará traduzir a primeira coluna de rodapé (última linha) da tebela.
TranslateAllFirstColumn
Se for 'true', tentará traduzir a primeira coluna de todas linhas em vez de somente da linha de rodapé (última linha).

TSSFileSender

Esta classe oferece os métodos para implementar o servidor de 'download'. O método principal é o 'Send()', mas o cabeçalho e o arquivo em si podem ser enviados separadamente pelos métodos 'SendHead()' e 'SendFile()' respectivalemnte. Tome cuidado ao implementar o servidor de download para não permitir o download de arquivos sensíveis como php e similares. Para isso, filtre os arquivos (por exemplo, permitir o download somente de arquivos especificados na lista especificada).

Variáveis

BufferSize
Tamanho de blocos a ser lido por vez.
DefaultCType
'ctype' assumido como padrão quando não consegue identificar pelq extensão do arquivo.

TSSHtmlReader

Esta classe oferece o método para ler a parte do arquivo htmldelimitado pelo tag escolhido. Cada parte delimitado pelo tag escolhido será considerado um bloco. ele suporta tag's aninhados (como listas dentro de lista, ou 'span' dentro de 'span', etc). O métod principal é 'Read()'.

Variáveis

FileName
Nome do arquivo de entrada (arquivo HTML)
KeepCommment
Se for 'true', re o comentário também (se 'false', desconsidera o comentário).
ContentsOnly
Se 'false', lê tag+(opçao de tag) também.
NumBlocks
Número de clocos a ser lidos.

TSSL10n

Esta classe fornece método para tradução de string para implementar a localização. A tradução é lido do arquivo json. Use 'SetFromFile()'/'AddFromFile()' para ler tradução do arquivo, e use 'str()' para traduzir string. O 'PreferedLang()' pode ser útil para detectar o idioma preferida do lado do cliente (browser).

Variáveis

AppName
Nome do aplicativo
AppVersion
Versão do aplicativo
LangName
Nome do idioma destino da tradução.
LangCode
Código do idioma de destino da tradução.

TSSMenu

Esta classe fornece métodos para gerar menu a partir do arquivo json usando 'AddFromFile() (ou pelo 'array' usando 'Add()'). O método principal para gerar menu é 'Print()'. Se o mudulo 'L10n' for fornecido, traduzirá o menu através dele.

Variáveis

Id
Id do menu, necessário caso usar o recurso de esconder/mostrar menu.
Options
Caso não for vazio, será passado para tag que delimita o menu.
SubMenuOptions
Se não for vazio, será passado para tag que delimita o submenu.
Toagle
Se for 'true', processa o elemento de 'toagle' (que esconde/mostra o menu) especificado no arquivo json (ou array). Se 'false', o elemento 'toagle' será ignorado quando gera o menu.
PrefixTagOptions
Se não for vazio e menu 'prerfix' for presente no arquivo de menu (ou array), passa como opção para o tag delimitador do prefixo do menu.
SubMenuPrefixTagOptions
Se não for vazio e prefixo do submenu estiver presente no arquivo (ou array), passa como opção para o tage delimitador de prefixo do submenu.
ItemSeparator
Inserido entre um ítem do outro, do menu, usado para facilitar a leitura do código de saída.
DisabledItem
O ítem que será desativada do emnu (ítem atual -- que será mardaco domo 'disabled'). Se ítem for do submenu, precisará passar a sequencia de itens (itens anteriores e item atual) para marcar sucessivamente (os anteriores também serão marcados como 'disabled', mas ítens que forem lista de único elemento em vez de string, será marcado como 'selected' -- e url continuará ativa -- ).
EnabledItemTagOptions
Caso não for vazio, será passado como opção para tag do ítem marcado como 'enabled', para permitir formatação pelo css.
DisabledItemTagOptions
Caso não vazio, será passado par ao tag de item marcado como 'disabled'.
SelectedItemTagOptions
Caso não vazio, será passado para opção do tag do item marcado como 'selected' (Para marcar como 'selected', especifique na lista de 'DisabledItem', como uma lista de único elemento, em vez de string).
L10n
Módulo de tradução. Se não for 'null', efetua a tradução do menu usando 'FL10n->str()'.
UseUrl
O valor padrão é 'true' que usa o URL para menu. em vez do código javascript.
UrlParam
O valor do elemento desta lista na forma 'key'=>'value' será passado como 'key=value' para parâmetro de todo url do menu (pelo método GET)

TSSPageCounter

Esta classe fornece o método para contagem de acesso das páginas usando o arquivo json. Para que funcione, o arquivo json a ser acessada precisará de permissão de escrita eplo servidor web (como o apache). Se o arquivo não estiver presente, precisará da permissão de escrita para criar um). O método principal é 'Step()'.

Variáveis

File
Nome do arquvio de contagem json. Ele pode ser passado também como primeiro parãmetro quando cira a classe pelo 'new', mas pode ser alterado posteriormente.
Id
Identificador usado no contador dentro do arquivo json. Ele pode ser passado também como primeiro parâmetro de 'Step()', mass também pode configurar este parâmetro chamar o 'Step()' sem parâmetro.
AutoAdd
Se for 'true', o contador que não estiver presente no arquivo será criado e receberá o valor 1 quando chamar o Step().
UnknownId
Caso o 'Iid' do contador não for especificado, usará este 'Id' para contar o acesso.

Licença

Todos arquivos, exceto fotos e video, são distribuídos em termos de GNU GPL versão 3, ou (se for a sua escolha) qualquer outra versão posterior.

https://www.gnu.org/licenses/licenses.pt-br.html

Licença sobre fotos e video

Todas fotos e video incluído como exemplo de álbum, são da autoria de Sadao Massago, e são distribuído pela licença CC BY-NC 4.0.

https://creativecommons.org/licenses/by-nc/4.0/deed.pt-br