Archive for the ‘javascript’ Category

Classe para encapsular código do OAS

Monday, October 15th, 2007

O código do OAS sempre me incomodou pelo fato de ser muito confuso, com aquelas funções e variáveis globais. Com o desenvolvimento do GloboVideos 4.2 surgiu um requisito para garantir que o layout das páginas não quebrassem no caso da não existência de alguma propaganda. Foi essa a deixa que me incentivou a encapsular este código em uma classe bem organizada.

Com essa classe a inserção de propaganda em uma página fica muito mais simples. Em primeiro lugar deve-se preparar o OAS informando-o qual sitepage e quais posições existem na página.

<script type=”text/javascript”>
var propaganda = new Propaganda();
propaganda.url = ‘http://ads.globo.com/RealMedia/ads/’;
propaganda.listpos = ‘Left1,Right1′;
propaganda.sitepage = ‘globovideo/catalogos/canais/redeglobo’;
propaganda.prepara();
</script>

A classe propaganda então fará a importação daquele famoso javascript do OAS que possui aquelas dezenas de document.write. Depois, no local onde deseja-se inserir uma determinada propaganda, basta mandar a propaganda ser exibida:

<div id=”propagandaNoCatalogo”>
<p>oferecimento</p>
<div class=”banner”>
<script type=”text/javascript”>
propaganda.exibe(”Right1″);
</script>
</div>
</div>

Bem mais simples não acham? Além disso, seguindo o requisito que me incentivou a criar esta classe, é possível verificar se algum banner foi exibido ou não utilizando o método exibiu. No caso abaixo, se a propaganda não existir eu mando esconder o div que o conteria.

<div id=”propagandaNoCatalogo”>
<p>oferecimento</p>
<div class=”banner”>
<script type=”text/javascript”>
propaganda.exibe(”Right1″);
if( !propaganda.exibiu(”propagandaNoCatalogo”) ) {
document.getElementById(”propagandaNoCatalogo”).style.display = “none”;
}
</script>
</div>
</div>

Não consegui postar aqui o código da classe, pois perde todo o alinhamento. Mas ele pode ser obtido pelo CVS no projeto GMC4. A classe encontra-se no arquivo /Portal/videos/cda/js/glb_videos.js. Caso você não tenha acesso ao projeto GMC4 deixe um comentário aqui que eu te passo o arquivo por Yahoo ou por e-mail.