This is an old revision of the document!
—-

วิธีแก้ปัญหา plugin "PDF" ไม่แสดงผลใน Internet Explorer เวอร์ชั่น 7 หรือสูงกว่า

1. สร้างไฟล์ใหม่ใช้ชื่อว่า browser_detection.php แล้วนำขึ้นไปใส่ไว้ใน folder ./libraries/joomla/utilities/ โดย copy โ้ค้ดด้านล่างไปใส่

<?php 
  
/* 
Script Name: Simple 'if' PHP Browser detection 
Author: Harald Hope, Website: http://TechPatterns.com/ 
Script Source URI: http://TechPatterns.com/downloads/php_browser_detection.php 
Version 2.0.2 
Copyright (C) 29 June 2007 
  
Modified 22 April 2008 by Jon Czerwinski 
Added IE 7 version detection 
  
This program is free software; you can redistribute it and/or modify it under  
the terms of the GNU General Public License as published by the Free Software 
Foundation; either version 3 of the License, or (at your option) any later version. 
  
This program is distributed in the hope that it will be useful, but WITHOUT  
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 
  
Get the full text of the GPL here: http://www.gnu.org/licenses/gpl.txt 

Coding conventions: 
http://cvs.sourceforge.net/viewcvs.py/phpbb/phpBB2/docs/codingstandards.htm?rev=1.3 
*/ 
  
/* 
the order is important, because opera must be tested first, and ie4 tested for before ie general 
same for konqueror, then safari, then gecko, since safari navigator user agent id's with 'gecko' in string. 
note that $dom_browser is set for all  modern dom browsers, this gives you a default to use, unfortunately we 
haven't figured out a way to do this with actual method testing, which would be much better and reliable. 
  
Please note: you have to call the function in order to get access to the variables, you call it by this: 
  
browser_detection('browser'); 
  
then put you code that you want to use the variables with after that. 
  
*/ 
  
function browser_detection( $which_test ) { 
  
        // initialize the variables 
        $browser = ''; 
        $dom_browser = ''; 
  
        // set to lower case to avoid errors, check to see if http_user_agent is set 
        $navigator_user_agent = ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) ? strtolower( $_SERVER['HTTP_USER_AGENT'] ) : ''; 
  
        // run through the main browser possibilities, assign them to the main $browser variable 
        if (stristr($navigator_user_agent, "opera"))  
        { 
                $browser = 'opera'; 
                $dom_browser = true; 
        } 
  
/* 
Test for IE 7 added 
April 22, 2008 
Jon Czerwinski 
*/ 
        elseif (stristr($navigator_user_agent, "msie 8"))   /* add for IE8 */ 
  {  
          $browser = 'msie8'; 
          $dom_browser = false; 
  }	 
        elseif (stristr($navigator_user_agent, "msie 7"))  
        { 
                $browser = 'msie7';  
                $dom_browser = false; 
        } 
  
        elseif (stristr($navigator_user_agent, "msie 4"))  
        { 
                $browser = 'msie4';  
                $dom_browser = false; 
        } 
  
        elseif (stristr($navigator_user_agent, "msie"))  
        { 
                $browser = 'msie';  
                $dom_browser = true; 
        } 
  
        elseif ((stristr($navigator_user_agent, "konqueror")) || (stristr($navigator_user_agent, "safari")))  
        { 
                $browser = 'safari';  
                $dom_browser = true; 
        } 
  
        elseif (stristr($navigator_user_agent, "gecko"))  
        { 
                $browser = 'mozilla'; 
                $dom_browser = true; 
        } 
  
        elseif (stristr($navigator_user_agent, "mozilla/4"))  
        { 
                $browser = 'ns4'; 
                $dom_browser = false; 
        } 
  
        else  
        { 
                $dom_browser = false; 
                $browser = false; 
        } 
  
        // return the test result you want 
        if ( $which_test == 'browser' ) 
        { 
                return $browser; 
        } 
        elseif ( $which_test == 'dom' ) 
        { 
                return $dom_browser; 
                //  note: $dom_browser is a boolean value, true/false, so you can just test if 
                // it's true or not. 
        } 
} 

/* 
you would call it like this: 

$user_browser = browser_detection('browser'); 
  
if ( $user_browser == 'opera' ) 
{ 
      do something; 
} 
  
or like this: 
  
if ( browser_detection('dom') ) 
{ 
        execute the code for dom browsers 
} 
else 
{ 
        execute the code for non DOM browsers 
} 
  
and so on....... 
  
  
*/ 
?> 

2. แก้ไขไฟล์ icon.php ที่อยู่ใน folder ./components/com_content/helpers/ โดยทำการสำรองไฟล์ icon.php ก่อนเพื่อเก็บไว้ใช้ภายหลัง โดยอาจสำรองไว้ในชื่อ icon.php.bak ซึ่งตำแหน่งที่ทำการแก้ไขมีจำนวน 2 จุดดังนี้
2.1 ไปที่บรรทัดแรกสุดของไฟล์ เิพิ่มโค้ดต่อไปนี้ โดยเว้นวรรคหนึ่งเคาะ ต่อจากเครื่องหมายเปิด Tag ของไฟล์ php”<?php..”

require_once("libraries/joomla/utilities/browser_detection.php"); 

2.2 ไปยังบรรทัดที่ 58 ของไฟล์

แทนที่ 
$attribs['onclick'] = "window.open(this.href,'win2','".$status."'); return false;"; 
ด้วยโค้ดต่อไปนี้ 
$user_browser = browser_detection('browser'); 
if ($user_browser == 'msie7'|| $user_browser == 'msie8') { 
   $attribs['target'] = '_blank'; 
} else {                      
   $attribs['onclick'] = "window.open(this.href,'win2','".$status."'); return false;"; 
} 

2.3 บันทึกจัดเก็บและนำ้ไว้วางไว้ที่ folder ./components/com_content/helpers/

ที่มา

ผู้เขียน

  1. นายขันธ์ศิริ อาทร เจ้าหน้าที่ระบบคอมพิวเตอร์ ศูนย์บริการความรู้ทางวิทยาศาสตร์และเทคโนโลยี



Personal Tools
Creative Commons License
STKS Online Learning โดย http://stks.or.th/wiki อนุญาตให้ใช้ได้ตาม สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน 3.0 ประเทศไทย.