Como funciona?
Na
"controller.vm" do
"special" é carregado o objeto de dados, já tratado pela remodel através da API de busca específica. O objeto contém a estrutura completa do especial, incluindo todas as configurações de necessárias. As especificidades de cada card pode ser vista na documentação de cada componente específico do special.
Dados e componentes tratados:[componente] special-adsRenderiza as publicidades, seguindo a regra de itens.
Para todos os especiais, a primeira publicidade é exibida após o primeiro card ([0] capa, [1] 1º card).
Após isso, é renderizada a cada 5 cards - nunca sendo posicionada imediatamente antes do componente
special-footer. Ex:
#pgv2_render("special-ads", {}, $special-cards)
[componente] special-mktbarRenderiza uma barra fixa de publieditorial só quando o especial for da editoria Conteúdo Publicitário.
Ela aparece fixa a partir do primeiro card ([0] capa, [1] 1º card). Ex:
#if($data.template == "mkt")
#pgv2_render("special-mktbar", {}, $special-cards)
#end
[componente] special-footerRenderiza o footer, último componente carregado no especial, com as informações obtidas através do
$data.especial.footer para serem consumidas pelo componente. Ex:
$_json.extend($data.especial.footer, {
"share" : $data.interaction,
"latest-news" : $data.latest-news
})
#pgv2_render("special-footer", $data.especial.footer, $special-cards)
[componente] audiencePassa as variáveis globais de audience que serão utilizadas e manipuladas por todo o Especial pelo
script.js. Ex:
#pgv2_render("audience", {
"title": "$!{data.cover.titulo-padrao}",
"type" : "special",
"name" : "Tagpage|Especiais",
'mediaName' : 'Tagpage|Especiais',
"tags" : $!uniqueTags
})
Dúvidas podem ser tiradas com o Júlio (jcavalcante@uolinc.com), Lucas (cin_lcaprio@uolinc.com) e Hélio (hgodinho@uolinc.com)[componente] seoPassa as variáveis que serão usadas nas metatags do head do Especial. Ex:
#pgv2_render("seo", {
"title": "$!{data.cover.titulo-padrao} | $!{config.portal.title} $!{config.central.title}",
"description" : "$!{data.interaction.defaults.description}",
"og:title" : "$!{data.cover.titulo-padrao} | $!{config.portal.title} $!{config.central.title}"
})
[dados] $data.interactionExtendemos os dados que recebemos da remodel com os dados tratados, para serem utilizados posteriormente em outros componentes. Ex:
$_json.extend($data.interaction, {
"defaults" : {
"title": "$!{data.cover.titulo-padrao} | $!{config.portal.title} $!{config.central.title}",
"description" : "$!{data.interaction.twitter.title}",
"type": "article"
},
"facebook" : {
"publisher" : "https://www.facebook.com/$!{config.components.interaction.facebook.user}"
},
"twitter" : {
"image" : {
"src" : "$!{data.interaction.defaults.image.src}"
}
}
})
#pgv2_render("interaction", $data.interaction)
[dados] $data.content.tagsSe o campo tags for preenchido na configuração geral do Especial, as tags serão tratadas pelo componente
ads para carregar campanhas específicas. Ex:
#set($uniqueTags = [])
#if($data.content.tags)
#foreach($tag in $data.content.tags)
#if($uniqueTags.indexOf($tag) == -1)
#set($null = $uniqueTags.add($tag))
#end
#end
#set($config.components.ads.tags = $uniqueTags)
#end