8796 sujets

Développement web côté serveur, CMS

Bonjour à tous et merci pour vos éventuelles réponses.

Ci-dessous un code PHP qui reconnaît IE6 (un plug-in de Joomla), je voudrais, mais je n'y connais pas grand chose, reconnaître >=IE7, à partir de ce code. Je pense que la réponse est simple, mais suis vraiment un "nul" !!

[code=php]<?php

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );


class  plgSystemSevenup extends JPlugin
{
	
	function plgSystemSevenup(& $subject, $config)
	{			
    parent::__construct($subject, $config);
		
		//load the translation
		//$this->loadLanguage( );
	
	}


	function onAfterInitialise()
	{
	  global $mainframe;
	  	 		  	 		  
    $document = &JFactory::getDocument();
   
    if ($this->isIE6() || $this->params->get('showToAllBrowsers',0)==1 ) {
         
        $document->addScript(JURI::base().'plugins/system/sevenup/js/sevenup.0.3.min.js'); 
        
        if ($this->params->get('useBlackPlugin',1)==1) {
        	$document->addScript(JURI::base().'plugins/system/sevenup/js/sevenup_black.0.3.min.js');     	  
        }    	    
      
    }           	       
  
	}
	
	function onAfterRender()
	{
	  	 		     
    if ($this->isIE6() || $this->params->get('showToAllBrowsers',0)==1 ) {
         
        $buffer = JResponse::getBody();
         
        $buffer = preg_replace('/<\/body>/', ($this->params->get('showToAllBrowsers',0)==1?'':' <!--[if lte IE 6]> ') . '     

	        <script type="text/javascript">     
	        
		        var options = {
						  enableClosing: ' . ($this->params->get('enableClosing', 0)==1 ? 'true' : 'false') . ', 
						  enableQuitBuggingMe: ' . ($this->params->get('enableQuitBuggingMe', 0)==1?'true':'false') . ', 
						  overlayColor: "' . $this->params->get('overlayColor') . '" , 
						  lightboxColor: "' . $this->params->get('lightboxColor') . '" , 
						  borderColor: "' . $this->params->get('borderColor') . '" , 
						  showToAllBrowsers: ' . ($this->params->get('showToAllBrowsers',0)==1?'true':'false') . ' 
		 				};
	
		        var callback = function() {
						  // Switch IE-specific content
						  // AJAX call to map IP to "IE6 user" status
						  // etc.
						}       
	                 
	          window.addEvent(\'domready\', function(){ sevenUp.' . ($this->params->get('useBlackPlugin',1)==1?'plugin.black.':'') . 'test(options, null); });    
	             
	        </script>

	        ' . ($this->params->get('showToAllBrowsers',0)==1?'':' <![endif]--> ') . ' </body>', $buffer);
	             	       
	      JResponse::setBody($buffer);
	             
    }           	       
  
  	return true;
	}

	
	function isIE6 () { // Deprecated?  
	
		$msie='/msie\s(5\.[5-9]|[6]\.[0-9]*).*(win)/i';
		return isset($_SERVER['HTTP_USER_AGENT']) &&
			preg_match($msie,$_SERVER['HTTP_USER_AGENT']) &&
			!preg_match('/opera/i',$_SERVER['HTTP_USER_AGENT']);
	}

  
} 

Modifié par IED Factory (15 Apr 2010 - 10:07)
Si ce plug-in a pour seul rôle de générer du code HTML supplémentaire pour IE, pas besoin de plug-in ni même de langage de programmation (que ce soit côté client comme JavaScript ou côté serveur comme PHP), puisque les commentaires conditionnels font des merveilles et sont bien plus fiables que les techniques de détection basées sur la chaîne d'agent utilisateur.
<!--[if gte IE 7]>
<script type="text/javascript">
// Le JavaScript pour les versions d'IE au moins égales à la 7
</script>
<![endif]-->
<!--[if IE 6]>
<script type="text/javascript">
// Le JavaScript pour IE 6
</script>
<![endif]-->

Modifié par Victor BRITO (15 Apr 2010 - 09:13)
Merci Victor,

mais je sais ce que tu viens de m'écrire....
Je suis dans le cadre d'un plug-in Joomla que je voudrais activer pour >=IE7 et qui fonctionne juste pour IE6 et comme je ne comprends pas beaucoup le PHP et que j'ai du mal à analyser le code je cherche juste une modif qui fait que cela va reconnaître jusqu'à IE7...

Merci quand même de ta réponse...

Cordialement
Salut et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

Bonne continuation Smiley smile

upload/1-code.gif
Bonjour à tous,

Comme on n'est jamais mieux servi que par soi même après plusieurs tests et essai de deux plugins, j'ai trouvé une solution en modifiant juste une ligne de l'extension : Internet Explorer 6 Warning Update - http://extensions.joomla.org/extensions/style-a-design/browsers-a-web-standards/8337?qh=YTozOntpOjA7czozOiJpZTYiO2k6MTtzOjc6Indhcm5pbmciO2k6MjtzOjExOiJpZTYgd2FybmluZyI7fQ%3D%3D

Du coup, c'est la même extension mais qui oeuvre aussi jusqu'à IE7. Vous pouvez la télécharger au lien suivant : http://www.i-e-d.fr/my_plg_ie7warning.2.0.zip

Dans la foulée en faisant mes tests, j'ai françisé un autre plugin : SevenUp IE6 Warning - http://extensions.joomla.org/extensions/style-a-design/browsers-a-web-standards/10278?qh=YTozOntpOjA7czozOiJpZTYiO2k6MTtzOjc6Indhcm5pbmciO2k6MjtzOjExOiJpZTYgd2FybmluZyI7fQ%3D%3D

Vous pouvez la télécharger au lien suivant : http://www.i-e-d.fr/seven-up-french.zip

Merci aux concepteurs de ces extensions qui sont informés des modifications apportés...