Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Flash toujours au dessus de la navigation DHTML sur Linux +Firefox
 
Herve Guetin
Sr. Member
 
Avatar
Total Posts:  216
Joined:  2008-05-10
Lyon, FR
 

Bonjour à tous,

Sous Windows (et Mac je crois), quand on met un WMODE transparent sur les objets flash, il est possible de gérer les z-index et ainsi d’éviter que le flash viennent recouvrir la navigation DHTML. Ceci ne marche pas sous Linux et de nombreux sujets (hors Magento) traitent de ce problème et apportent des solutions. Voir un lien ci-après.

Mais mes compétences me bloquent bien que je soit sûr d’avoir les bonnes fondations dans mon code !
Merci d’avance pour votre aide à m’aider à combiner ces infos pour en faire quelquechose qui fonctionne.

En bonus : une fois que çà marchera, je ferai un petit tuto PDF donnant la méthode pour appeler des flash pour, par exemple, remplacer le zoom standard de Magento (ou autres “callouts") pour ceux qui le désirent et, au mieux, quelque soit l’environnement de l’internaute visiteur.

Thanks all !

_________________

1. J’ai un .js stocké dans mon dossier skin/.../js que j’ai bien appelé via la page.xml en ajoutant ce code :

<action method="addItem"><type>skin_js</type><name>js/mogalupa.js</name></action>

2. J’ai modifié le fichier catalog/product/view/media.html comme suit qui a pour but d’appeler la fonction zoom() avec différentes variables qui sont ensuite passées en flashVars :

/
**
 * 
Product media data template
 
*
 * @
see Mage_Catalog_Block_Product_View_Media
 
*/
?>
<?php $_product 
$this->getProduct() ?>

<!-- ON MET LE ZOOM FLASH -->
<
class="main-product-img">
<
script language="javascript">
swf '<?php echo $this->getSkinUrl('zoom/zoom.swf'); ?>';
sku '<?php echo $_product->getSku() ?>';
lienskin '<?php echo $this->getSkinUrl() ?>';
zoom(swf,sku,lienskin);
</script>
</p>


<!-- 
ON SUPPRIME TOUT LE RESTE QUI FAISAIT L'IMAGE MAGENTO -->

3. La fonction zoom() stockée dans le fichier js/mogalupa.js évoqué au point 1 dont le rôle est d’afficher le flash :

function zoom(swf,sku,lienskin{

[removed]
('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="400" height="400" style="z-index:1" >');
[removed]('<param name="movie" value="'+swf+'">');
[removed]('<param name="quality" value="high">');
[removed]('<param name="wmode" value="transparent" />');
[removed]('<param name="flashvars" value="sku='+sku+'&lienskin;='+lienskin+'"');
[removed]('<embed src="'+swf+'" width="400" height="400" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" FlashVars="sku='+sku+'&lienskin;='+lienskin+'" ></embed></object>');

}

Tout ceci marche très bien partout (à ma connaissance) sauf sur Linux et voici LE lien qui semble être LA solution smile mais je n’arrive à m’en sortir :

http://blog.marcoos.com/2006/07/21/html-div-above-a-flash-animation-on-linux-its-possible/

Et un exemple de page de mon site qui bug sous Linux [merci de ne pas y passer de commande] :
Exemple

Un grand merci pour votre aide.

PS : évidemment, le z-index de #nav dans skin/.../menu.css est à 999…

 
Magento Community Magento Community
Magento Community
Magento Community
 
SeL_
Magento Team
 
Avatar
Total Posts:  1140
Joined:  2007-10-10
Paris, France
 

Salut,

J’ai eu ce problème. C’est dû à un bug de flash sous Linux je crois.
Et je n’ai jamais trouvé de solution, sinon d’utiliser une image dans le cas d’un navigateur firefox sous linux :-(
Dans mon cas, ce n’était qu’une animation, ce n’était pas fonctionnel.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Herve Guetin
Sr. Member
 
Avatar
Total Posts:  216
Joined:  2008-05-10
Lyon, FR
 

Merci pour la réponse. C’est vrai que (please, no troll smile ) d’un point de vue purement commercial… peu d’internautes particulers sont sur linux et que je ne risque pas de perdre beaucoup de clients… Mais bon, il existe un hack que je n’arrive pas à comprendre :
http://blog.marcoos.com/2006/07/21/html-div-above-a-flash-animation-on-linux-its-possible/

Quand un dév chevronné aura 5 min… je suis sûr qu’il trouvera çà super facile smile

 
Magento Community Magento Community
Magento Community
Magento Community
 
SeL_
Magento Team
 
Avatar
Total Posts:  1140
Joined:  2007-10-10
Paris, France
 

Les explications du hack sont les suivantes. Il faut ajouter un iframe au dessus du flash (zindex=5) et en dessous du div de navigation que tu veux afficher (zindex=10).
Au chargement de la page, l’iframe ne doit pas être affiché (display: none). Puis, à l’aide de javascript, il faut qu’il soit affiché :

<body onload='document.getElementById("iframe").style.display="block"' >
Attention, il faut que l’iframe ait exactement la taille du div de navigation.

Dans ton cas, il faudrait que cet iframe soit masqué quand ta navigation est masquée et affiché quand ta navigation est affichée.

Ça fonctionne bien si ton div de navigation est rectangulaire car ton iframe masquera la portion de flash qu’elle recouvre, et un iframe est forcément rectangulaire.

Dans mon cas, j’avais des bouts d’animation flash qui n’étaient pas rectangulaires et donc je ne pouvais pas utiliser ce hack.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Herve Guetin
Sr. Member
 
Avatar
Total Posts:  216
Joined:  2008-05-10
Lyon, FR
 

Hey, j’avais pas vu ta réponse. Merci. Je m’y replongerai quand il n’y aura pas que Dell qui propose des ordi “mainstream” avec du Linux en standard...apparemment çà va changer avec les nouvelles lois sur l’économie numérique…

 
Magento Community Magento Community
Magento Community
Magento Community
 
jybnet
Jr. Member
 
Avatar
Total Posts:  9
Joined:  2008-05-17
France
 

Après avoir regardé beaucoup de choses pour incorporer du flash : 1 seule solution le swfobject !
Gratuit et génial = 0 incompatibilité et en plus les menus passent au dessus du flash.

Enfin avec express install on a le User (aussi appelé Client) qui a son flash upgradé sans rien faire et la page est rechargée toute seule.
Parce que pour beaucoup de nos clients “Votre flash n’est pas à jour” = électro-encéphalogramme plat.

Je vous passe le code de notre excellent site sur Magento qui fait tout cela.
Merci SwfObject ! Adieu les “embed” and all other bad stuff....
----------------------------
<script type="text/javascript" src="swfobject.js"></script>

<div id="dummy-vision">Votre version de Navigateur ou de Flash n’est pas compatible. <br />Votre Flash va être mis à jour</a></div>
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("http://www.VOTRESITE.com/dummy/dummy.swf", “sotester”, “500”, “500”, “7”, “#ffffff");
so.addParam("wmode", “transparent");
so.useExpressInstall("http://www.VOTRESITE.com/dummy/expressinstall.swf");
so.addVariable("xmlfile1", “http://www.VOTRESITE.com/dummy/dummy.xml"); (SI VOUS AVEZ UN XML...)
so.write("dummy-vision");
// ]]>
</script>
-----------------------------
Ne pas oublier de modifier : app/frontend/design/VOTRESTYLE/default/layout/page.xml pour appeler le swfobject :
<action method="addJs"><script>VOTREDOMAINE/dummy/swfobject.js</script></action>

et de mettre le swfobject dans le répertoire décrit dans action method.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Herve Guetin
Sr. Member
 
Avatar
Total Posts:  216
Joined:  2008-05-10
Lyon, FR
 

Mille mercis jybnet. Je vais regarder çà avec beaucoup d’attention et vous passer un retour d’expérience au plus vite !
Bien à vous

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top