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 12:03 | 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/ |
| <?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: |
| - | Script Name: Simple 'if' PHP Browser detection | + | http://cvs.sourceforge.net/viewcvs.py/phpbb/phpBB2/docs/codingstandards.htm?rev=1.3 |
| - | 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 | + | 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. | ||
| + | } | ||
| + | } | ||
| - | Modified 22 April 2008 by Jon Czerwinski | + | /* |
| - | Added IE 7 version detection | + | you would call it like this: |
| - | This program is free software; you can redistribute it and/or modify it under | + | $user_browser = browser_detection('browser'); |
| - | 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. | + | if ( $user_browser == 'opera' ) |
| - | + | { | |
| - | 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 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; | do something; | ||
| - | } | + | } |
| - | + | ||
| - | or like this: | + | or like this: |
| - | + | ||
| - | if ( browser_detection('dom') ) | + | if ( browser_detection('dom') ) |
| - | { | + | { |
| - | execute the code for dom browsers | + | execute the code for dom browsers |
| - | } | + | } |
| - | else | + | else |
| - | { | + | { |
| - | execute the code for non DOM browsers | + | execute the code for non DOM browsers |
| - | } | + | } |
| - | + | ||
| - | and so on....... | + | and so on....... |
| - | + | ||
| - | + | ||
| - | */ | + | */ |
| - | ?> | + | ?> |
| + | 2. แก้ไขไฟล์ icon.php ที่อยู่ใน folder ./components/com_content/helpers/ โดยทำการสำรองไฟล์ icon.php ก่อนเพื่อเก็บไว้ใช้ภายหลัง โดยอาจสำรองไว้ในชื่อ icon.php.bak ซึ่งตำแหน่งที่ทำการแก้ไขมีจำนวน 2 จุดดังนี้ | ||
| - | - แก้ไขไฟล์ icon.php ที่อยู่ใน folder ./components/com_content/helpers/ โดยทำการสำรองไฟล์ icon.php ก่อนเพื่อเก็บไว้ใช้ภายหลัง โดยอาจสำรองไว้ในชื่อ icon.php.bak ซึ่งตำแหน่งที่ทำการแก้ไขมีจำนวน 2 จุดดังนี้ | + | 2.1 ไปที่บรรทัดแรกสุดของไฟล์ เว้นวรรคหนึ่งเคาะ ต่อจากเครื่องหมายเปิด Tag ของไฟล์ php"<?php.." แล้วเิพิ่มโค้ดต่อไปนี้ |
| - | * ไปที่บรรทัดแรกสุดของไฟล์ เิพิ่มโค้ดต่อไปนี้ โดยเว้นวรรคหนึ่งเคาะ ต่อจากเครื่องหมายเปิด Tag ของไฟล์ php"<?php.." | + | |
| require_once("libraries/joomla/utilities/browser_detection.php"); | require_once("libraries/joomla/utilities/browser_detection.php"); | ||
| - | * ไปยังบรรทัดที่ 58 ของไฟล์ | + | 2.2 ไปยังบรรทัดที่ 58 ของไฟล์ |
| แทนที่ | แทนที่ | ||
| Line 160: | Line 167: | ||
| ด้วยโค้ดต่อไปนี้ | ด้วยโค้ดต่อไปนี้ | ||
| $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 166: | Line 173: | ||
| } | } | ||
| + | 2.3 บันทึกจัดเก็บและนำ้ไว้วางไว้ที่ folder ./components/com_content/helpers/ | ||
| **ที่มา** | **ที่มา** | ||
