Differences

This shows you the differences between the selected revision and the current version of the page.


joomla:pdf-display-ie-bug-fixed 2009/06/01 11:16 joomla:pdf-display-ie-bug-fixed 2009/06/01 12:22 current
Line 1: Line 1:
====== วิธีแก้ปัญหา plugin "PDF" ไม่แสดงผลใน Internet Explorer เวอร์ชั่น 7 หรือสูงกว่า ====== ====== วิธีแก้ปัญหา plugin "PDF" ไม่แสดงผลใน Internet Explorer เวอร์ชั่น 7 หรือสูงกว่า ======
-  - สร้างไฟล์ใหม่ใช้ชื่อว่า browser_detection.php แล้วนำขึ้นไปใส่ไว้ใน folder ./libraries/joomla/utilities/ +1. สร้างไฟล์ใหม่ใช้ชื่อว่า browser_detection.php โดย copy โ้ค้ดด้านล่างไปใส่ บันทึกแล้วนำขึ้นไปใส่ไว้ใน folder ./libraries/joomla/utilities/  
-  - แก้ไขไฟล์ icon.php ที่อยู่ใน folder ./components/com_content/helpers/ โดยทำการสำรองไฟล์ icon.php ก่อนเพื่อเก็บไว้ใช้ภายหลัง โดยอาจสำรองไว้ในชื่อ icon.php.bak ซึ่งตำแหน่งที่ทำการแก้ไขมีจำนวน 2 จุดดังนี้ + 
-   * ไปที่บรรทัดแรกสุดของไฟล์ เิพิ่มโค้ดต่อไปนี้ โดยเว้นวรรคหนึ่งเคาะ ต่อจากเครื่องหมายเปิด Tag ของไฟล์ php"<?php.."+  <?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");   require_once("libraries/joomla/utilities/browser_detection.php");
-    * ไปยังบรรทัดที่ 58 ของไฟล์ และทำการแทนที่โค้ดต่อไปนี้ ด้วยโ้ค้ดด้านล่าง+ 
 +2.2 ไปยังบรรทัดที่ 58 ของไฟล์ 
  แทนที่   แทนที่
  $attribs['onclick'] = "window.open(this.href,'win2','".$status."'); return false;";   $attribs['onclick'] = "window.open(this.href,'win2','".$status."'); return false;";
-  ด้วยโค้ด+  ด้วยโค้ดต่อไปนี้
  $user_browser = browser_detection('browser');   $user_browser = browser_detection('browser');
-  if ($user_browser == 'msie7') {+  if ($user_browser == 'msie7'|| $user_browser == 'msie8') {
    $attribs['target'] = '_blank';     $attribs['target'] = '_blank';
  } else {                      } else {                   
Line 19: Line 173:
  }   }
 +2.3 บันทึกจัดเก็บและนำ้ไว้วางไว้ที่ folder ./components/com_content/helpers/
**ที่มา** **ที่มา**

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