Embed Control (Geramódulos)

Responsável por inciar os componentes do antigo geramódulos.




Lógica do Geramódulos

- O editor cola o código embed em uma matéria
- O componente "article" (ou qualquer outro componente) aplica a macro "Richcontent" no campo "texto"
- Esta macro possui uma "regexp" que identifica um padrão (find) e ativa o componente (exec), repassando um json com os dados encontrados (prep).

{
"find": "escape\.getH\(\)uolbr_geraModulos\(\'.*?\','(.*?)\.vm'\)",
"prep": '{"search" : {"params" : {"path" : "/api.uol.com.br/embed-control/$2.json"}}}',
"exec": "embed-control"
}




Controller e API Conteúdo

Antes dos dados chegarem na Controller, ele passa pela API de Conteúdo.
POR QUE ELE PASSA NA API DE CONTEÚDO? Porque definimos o objeto "search" dentro do $default, passando o "módulo" e a "controller" que a API deve executar:

# set( $default = {
"search" : {
"controller" : "embed-control",
"module" : "monaco"
}
})

API Embed-control: /macros/api/monaco/embed-control.vm

Quando chega na "controller.vm", o embed-control apenas verifica qual o componente deve ser chamado e executa a # render, passando os dados já tratados.
SE UM NOVO COMPONENTE FOR CARREGADO PELO EMBED-CONTROL, ELE DEVERÁ SER CHAMADO NA REQUIRE.



Exemplo

- Embed colado pelo editor na matéria: #uolbr_geraModulos('embed-citacoes','/2015/nando-reis-1448948203860.vm')
- A macro richContent transorma em:

{
"search" : {
"params" : {
"path" : "/api.uol.com.br/embed-control/2015/nando-reis-1448948203860.json"}
}
}

- Executa o componente.

Nando Reis

  • "Sinceramente, estou pouco me fodendo para as críticas. Criticado sempre fui. Desde meu primeiro disco, por causa da minha voz"

    Nando Reis
  • Lucas Lima/UOL

    "O que mais me incomoda nesse estilo é uma certa pobreza na forma de escrever, sabe? Acho as letras muito pouco desenvolvidas. É um grau de chavão. Isso eu acho triste"