O repositório de widgets do CMS: 43 widgets e como os adicionar
totaljs/cms-widgets contém os widgets oficiais do CMS do Total.js. Na revisão documentada aqui (dc92cb7) tem 43 widgets em widgets/, um ficheiro HTML cada, todos com o grupo Content, além do script que gera o catálogo (db.js). O formato de cada ficheiro está descrito em widgets.
O que cobrem
O repositório põe todos os widgets num único grupo; a tabela seguinte apenas os ordena pelo que os seus nomes sugerem, para o ajudar a encontrá-los.
| Tipo | Widgets |
|---|---|
| Texto | headline, paragraph, paragraph2, article, alert, list, keyvalue, properties, summary, tags, code, codehighlighter |
| Estrutura | container, vcontainer, columns100, columnshalfs, columnsthirds, panelsthirds, box, emptyspace, line, gradient |
| Texto com imagem | textimageleft, textimageright, textimagecenter, textimageflex, features2, features3, insight, team, partners, expansionlist |
| Imagens e multimédia | picture, images, imagelinks, gallery, video, bufferwall |
| Ligações e botões | linkbutton, buttonsgroup, socialnetworks |
| Integração | importer, uibuilder (veja UI Builder) |
Nove deles usam exports.render para construir o seu HTML no servidor (bufferwall, code, codehighlighter, images, imagelinks, importer, picture, partners e uibuilder); os restantes são blocos estáticos que o editor configura e o CMS serve tal como estão.
Adicionar um widget ao seu CMS
Cada ficheiro é um widget completo. No admin, abra o plugin Widgets e importe o ficheiro, ou envie-o com a API:
{ "schema": "widgets_save", "data": { "html": "<the content of headline.html>", "singleton": true } }Envie-o com POST para /admin/ com o cookie de sessão ou o cabeçalho x-token (a API do admin).
O catálogo: db.json
O editor pode listar os widgets de um catálogo. O db.js cria-o: lê cada ficheiro de widgets/, tira name, author e preview dos seus exports, constrói o endereço https://cdn.totaljs.com/cms/<file> e escreve db.json ordenado por nome, com uma entrada por widget (id, name, url, author, preview). O db.js começa com require('total4'), por isso precisa do Total.js 4 para correr, como no repositório dos componentes do Flow (o repositório de componentes).
Os seus próprios widgets
Copie o widget mais parecido, mude exports.id e exports.name e adapte o estilo, o design e as definições. Se o widget precisar de uma biblioteca, indique-a em exports.dependencies e o CMS acrescenta-a ao head das páginas que o usam.