Trace:
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:08 | 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 จุดดังนี้ | + | |
| - | - 2.1 ในบรรทัดแรกสุดของไฟล์ เิพิ่มโค้ดต่อไปนี้ โดยเว้นวรรคหนึ่งเคาะ ต่อจากเครื่องหมายเปิด 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"); | ||
| + | |||
| + | 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/ | ||
| **ที่มา** | **ที่มา** | ||
