Skip to content. | Skip to navigation

Cleber J Santos

Sections
Personal tools
Document Actions

Resolvendo o problema do flash player 10 no Plone.

Por Cleber J Santos em 17-02-2009 06:56

Para a nova versão do flash Player 10 é necessário adicionar ao Plone uma correção, e também no produto ATFlashMovie para quem usa.

Trabalhar com Plone e seus produtos é uma delícia, ainda mais quando a Adobe lança um novo player que por acaso é a versão 10, e os clientes começam a fazer suas atualizações. No outro dia você recebe a ligação do cliente perguntando cade aquele banner maravilhoso e cheio de animações que tinha na página dele.

Depois de apanhar bastante tentando descobrir o problema e colocando a culpa no IE7 e na Adobe por lançar algo novo,  você descobre que o problema também está no na forma que o produto ATFlashMovie trata o flash...


SOLUCIONATICA

1 - Antes de mais nada, saiba que com a chegada do novo player 10 da adobe é necessário uma correção na forma que o Plone trata os arquivos Flash, e também é necessário uma correção no produto ATFlashMovie para quem usa ele claro :-)

2 - Edite o arquivo ATFlashMovie.py que está em /Products/ATFlashMovie

3 - Desça até a linha 95 e adicione o texto: inlineMimetypes = ('application/x-shockwave-flash') que deverá ficar assim:

92.   typeDescription= "A Macromedia flash film"
92.   typeDescription= "A Macromedia flash film"
93.   typeDescMsgId  = 'description_edit_flash_file'
94.   assocFileExt   = ('swf',)
95.   inlineMimetypes = ('application/x-shockwave-flash')
96.
97.   global_allow = True
É claro que se você também não quer ficar editanto arquivos, você pode simplesmente baixar e aplicar o fix localizado em: http://plone.org/products/products-flash10fix

4 - Agora vamos as duas últimas correções, só que agora no Plone, então edite o arquivo Field.py que está em /Products/Archetypes ou em /parts/plone/Archetypes dependendo da instalação do Plone hehehe.

5 - Vá na linha 1155, onde devemos adicionar uma declaração que verifica se o nome do arquivo termina com swf e em caso de positivo, altera a visão do arquivo como inline e não anexo.

Field.py (ATUAL)
1153.            else:   
1154.               filename = unicode(filename, instance.getCharset())
1155.            header_value = contentDispositionHeader(
1156.                disposition='attachment',
1157.                filename=filename)
1158.            RESPONSE.setHeader("Content-Disposition", header_value)
1159.        if no_output

Field.py (Linhas adicionadas em azul e alteradas em vermelho)

1153.            else:   
1154.                filename = unicode(filename, instance.getCharset())
1155.            filenameParts = filename.split('.')
1156.            if filenameParts[len(filenameParts) - 1] == 'swf':
1157.                header_value = contentDispositionHeader(
1158.                    disposition='inline',
1159.                    filename=filename)
1160.            else:
1161.                header_value = contentDispositionHeader(
1162.                    disposition='attachment',
1163.                    filename=filename)
1164.            RESPONSE.setHeader("Content-Disposition", header_value)
1165.        if no_output:

6 - Agora uma última alteração, devemos habilitar o uso das tags object e embed  para os editores como o Kupu e FCKEditor, isso também vai influênciar no site, sem isso eu estava tendo problemas ao usar o KBanner.

7 - Na ZMI clique em portal_transforms, procure por safe_html e remova caso exista as entradas "object" e "embed" da lista nasty_tags

8 - Agora adicione as mesmas tags nas lista valid_tags e salve com o valor 1.

9 - Dê um restart na instância para que as alterações feitas no produto e no Field tenham efeito ;)