Ajustement pour IE

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Ajustement pour IE

    Bonjour,

    mon plugin s'appelle chgheaderonload, c'est un élément qui est chargé dès le début du chargement de la page. Son but est d'animer l'image en position "header". Finalement, à force de développement, la forme d'animation et l'image changée n'est pas limitiée au seul header. Fin de la présentation.

    Mon problème: avec IE (ah, ce IE !!!!) : lorsque le plugin est activé, toute la page se trouve déplacée vers la gauche. L'alignement centré du contenu est anihilé et je ne trouve pas pourquoi. Il n'y a rien dans mon code qui fasse en sorte que ça se passe ainsi (aucune commande spécifique), mais ce semble inévitable.

    J'aimerais que vous m'aidiez à redonner sa liberté à Joomla dans IE lorsque mon plugin est activé.

    Voici le code complet:
    Code PHP:
    // no direct access
    defined( '_JEXEC' ) or die( 'Restricted access' );
    jimport( 'joomla.plugin.plugin');

    global $LoginModule;

    class plgSystemChgHeaderOnLoad extends JPlugin {
        
        var $buffer = '';
        
        function plgSystemChgHeaderOnLoad(&$subject, $config)  {
            parent::__construct($subject, $config);
            //Set the language in the class
            $config = JFactory::getConfig();
            $options = array(
                'Directory'    => 'images/header/',
                'ImgName'    => 'header',
                'Frequence'    => 2,
                'Methode'        => 'Random',
                'Speed'        => 1
            );

            jimport('joomla.cache.cache');
            $this->_cache = JCache::getInstance('page', $options);
        }

        function onAfterRender()
        {
            $app =& JFactory::getApplication();
            if ( $app->getName() != 'site') { return true; }
            
            global $LoginModule;
            $ValeurLues = Array();
            $list_ignore[] = '.';
            $list_ignore[] = '..';
            $list_ignore[] = 'index.html';
            $prefixe = "";
            $AuDela = substr($_SERVER["PHP_SELF"], 0, strpos($_SERVER["PHP_SELF"], "index.php"));
            $handle = chdir($this->params->get( 'Directory', 'images/header/'));
            $combien = substr_count($handle, "/");
            $handle=opendir(".");
                
            $compte = -1;    
            while ($file = readdir($handle)) {
                if (!is_dir($file) && !in_array($file,$list_ignore)) {
                    $ValeurLues[++$compte] = $file;
                }
            }
            closedir($handle);    
            for($x=0; $x<$combien; $x++) {
                $handle = chdir("..");
            }
            $NomChoisi = ($this->params->get('Methode', 'Random') == 'Random') ? $ValeurLues[rand(0, $compte)] : $ValeurLues[0];
            ?>
            <script language="javascript">    
                setTimeout("JeChangeImg()", 2000);
                var Chemin = "http://<?php echo $_SERVER['HTTP_HOST'].$AuDela.$this->params->get'Directory''images/header/'); ?>";
                var Compte = <?php echo $compte?>;
                var DecalX = <?php echo $this->params->get('PosiX'0); ?>;
                var DecalY = <?php echo $this->params->get('PosiY'0); ?>;
                var Precedent = 0;
                var Psg = 0;
                var Fondu = <?php  echo $this->params->get'Speed'1); ?>;
                var InitFondu = 0;
                var LesTrans = Array("Fonderons", "GlisseronsG", "GlisseronsD", "Fonderons", "Exploserons", "Imploserons", "Fonderons", "CroitronsHG", "CroitronsHD", "Fonderons", "CroitronsBG", "CroitronsBD"); 
                var SensFondu = 1;
                var id = "<?php  echo $this->params->get'ImgName''header'); ?>";
                var ToutesDivs = Array(); 
                var NextNum = 0;
                var Vitesse = <?php  echo $this->params->get'Speed'1); ?>;

                <?php  if ($this->params->get'Frequence'0) != 0) {  ?>
                    MonChoix = "<?php echo $NomChoisi?>";
                    LesImages = Array();
                    <?php for ($x=0$x<=$compte$x++) {?>
                        LesImages[<?php echo $x?>] = "<?php echo $ValeurLues[$x]; ?>";
                    <?php ?>
                <?php ?>
                <?php
                    
    if ($this->params->get'MethodTransition''Fonderons') == 'Aleatoire') {
                        include_once(
    "methodes/Fonderons.js");
                        include_once(
    "methodes/GlisseronsG.js");
                        include_once(
    "methodes/GlisseronsD.js");
                        include_once(
    "methodes/Exploserons.js");
                        include_once(
    "methodes/Imploserons.js");
                        include_once(
    "methodes/CroitronsHG.js");
                        include_once(
    "methodes/CroitronsHD.js");
                        include_once(
    "methodes/CroitronsBG.js");
                        include_once(
    "methodes/CroitronsBD.js");
                    } else {
                        include_once(
    "methodes/".$this->params->get'MethodTransition''Fonderons').".js");
                    }
                
    ?>
                
                function JeChangeImg () {
                    <?php  if ($this->params->get'Frequence'0) != 0) {  ?>
                        Faisons = 1;
                        var NomFinal = Chemin + MonChoix;
                        <?php  if ($this->params->get'ImgName''header') == 'body') {  ?>
                            document.body.style.backgroundImage = 'url("' + NomFinal + '")';
                        <?php } else { ?>
                            if (Fondu == 0) {
                                document.getElementById(id).style.backgroundImage = 'url("' + NomFinal + '")';
                            }
                        <?php ?>
                        <?php if ($this->params->get('Methode''Random') == 'Random') { ?>
                            var Chx = Math.random();
                            NextNum = Math.round(Chx * Compte);
                        <?php } else { ?>
                            <?php if ($this->params->get('Methode''Loop') == 'Loop') { ?>
                                if (NextNum > Compte) { NextNum = 0; }
                            <?php } else { ?>
                                if (NextNum > Compte) { Faisons = 0; }
                            <?php ?>
                            Precedent = NextNum;
                        <?php ?>
                        if (Faisons == 1) {
                            MonChoix = LesImages[NextNum];
                            if (Fondu > 0 && InitFondu == 0) {
                                <?php if ($this->params->get('Methode''Loop') != 'Random') { ?>  NextNum = Precedent + 1;  <?php ?>
                                Transitons();
                            }
                            setTimeout("JeChangeImg()", <?php  echo ($this->params->get'Frequence'0)*1000); ?>);
                        }
                    <?php } else {?>
                        document.getElementById("<?php  echo $this->params->get'ImgName''header'); ?>").style.backgroundImage = 'url("http://<?php echo $_SERVER['HTTP_HOST'].$AuDela.$this->params->get'Directory''images/stories/header/').$NomChoisi?>")';
                        if (Psg++ < 5) { setTimeout("JeChangeImg()", 5000);  }        //We pass here five times to makes sure the picture is there, even under very slow connections.
                    <?php ?>
                }

                //On choisit ici le type de transition
                //Fonction appelée par JeChangeImg            
                function Transitons () {
                    ProchTrans = "<?php  echo $this->params->get'MethodTransition''Fonderons'); ?>";
                    if (ProchTrans == 'Aleatoire') {
                        var Suiv = Math.random();
                        Suiv = Math.round(Suiv * LesTrans.length);
                        ProchTrans = LesTrans[Suiv];
                    }
                    if ( ProchTrans == "Fonderons"    ) { InitFondu = 100; SensFondu = -1; Fondons(); }
                    if ( ProchTrans == "GlisseronsG" )  {GlissonsG(); }
                    if ( ProchTrans == "GlisseronsD" )  {GlissonsD(); }
                    if ( ProchTrans == "Exploserons" )  {Explosons(); }
                    if ( ProchTrans == "Imploserons" )  {Implosons(); }
                    if ( ProchTrans == "CroitronsHG" )  {CroissonsHG(); }
                    if ( ProchTrans == "CroitronsHD" )  {CroissonsHD(); }
                    if ( ProchTrans == "CroitronsBG" )  {CroissonsBG(); }
                    if ( ProchTrans == "CroitronsBD" )  {CroissonsBD(); }
                }

            function ChgPage () {
                document.location.href  = "<?php  echo $this->params->get'TheLink''index.php'); ?>";
            }

            function ApresTout () {            
                //Duplication de la div contenant l'image à changer, en vue du fondu
                var Epais = 3;
                var LesPetits = new Object();
                var MesPetits = document.getElementById(id).childNodes;
        
                //Attributs de la nouvelle div
                if (navigator.appName == "'Microsoft Internet Explorer'") {
                    document.getElementById('Duplicata_div_ChgHeaderOnLoad').style.position = "fixed";
                } else {
                    document.getElementById('Duplicata_div_ChgHeaderOnLoad').style.position = "absolute";
                }
                document.getElementById('Duplicata_div_ChgHeaderOnLoad').style.top = document.getElementById(id).offsetTop + DecalY;
                document.getElementById('Duplicata_div_ChgHeaderOnLoad').style.left = document.getElementById(id).offsetLeft + DecalX;
                document.getElementById('Duplicata_div_ChgHeaderOnLoad').style.height = document.getElementById(id).offsetHeight;
                document.getElementById('Duplicata_div_ChgHeaderOnLoad').style.width = document.getElementById(id).offsetWidth;
                document.getElementById('Duplicata_div_ChgHeaderOnLoad').onclick = ChgPage;
                document.getElementById(id).onclick = ChgPage;
        
                for(i=0;i<MesPetits.length;i++) { 
                    if ( MesPetits[i].id != '' && MesPetits[i].id != undefined ) {
                        document.getElementById(MesPetits[i].id).style.zIndex = Epais++;
                        if (navigator.appName == "'Microsoft Internet Explorer'") {
                            document.getElementById(MesPetits[i].id).style.position = "fixed";
                        } else {
                            document.getElementById(MesPetits[i].id).style.position = "absolute";
                        }
                    }
                }
            }
            </script>
            
    <?php
                $body 
    JResponse::getBody();
                
    $body preg_replace('/id="'.$this->params->get'ImgName''header').'"/''id="'.$this->params->get'ImgName''header').'" style="z-index: 1;" ',  $body1);
                
    $PosiX strpos($body,  'id="'.$this->params->get'ImgName''header').'"');
                
    $PostContenu substr($body$PosiX);
                
    $Posi strpos($body'>'$PosiX ) + 1;
                
    $PreContenu substr($body,  0$Posi );
                
    $Contenu '<div id="Duplicata_div_ChgHeaderOnLoad" style="z-index:2;"></div>';
                
    $PostContenu substr($body,  $Posi);
                
    $NouvContenu $PreContenu.$Contenu.$PostContenu."<script>ApresTout();</script>";
                
    JResponse::setBody($NouvContenu);
        }
    }
    Merci à l'avance


    On peut charger le plugin et l'installer par le téléchargement disponible ici

Annonce

Réduire
Aucune annonce pour le moment.

Partenaire de l'association

Réduire

Hébergeur Web PlanetHoster
Travaille ...
X