fckutils.cfm 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <!---
  2. * FCKeditor - The text editor for Internet - http://www.fckeditor.net
  3. * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  4. *
  5. * == BEGIN LICENSE ==
  6. *
  7. * Licensed under the terms of any of the following licenses at your
  8. * choice:
  9. *
  10. * - GNU General Public License Version 2 or later (the "GPL")
  11. * http://www.gnu.org/licenses/gpl.html
  12. *
  13. * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  14. * http://www.gnu.org/licenses/lgpl.html
  15. *
  16. * - Mozilla Public License Version 1.1 or later (the "MPL")
  17. * http://www.mozilla.org/MPL/MPL-1.1.html
  18. *
  19. * == END LICENSE ==
  20. *
  21. * ColdFusion integration.
  22. * This function is used by FCKeditor module to check browser compatibility
  23. --->
  24. <cfscript>
  25. function FCKeditor_IsCompatibleBrowser()
  26. {
  27. sAgent = lCase( cgi.HTTP_USER_AGENT );
  28. isCompatibleBrowser = false;
  29. // check for Internet Explorer ( >= 5.5 )
  30. if( find( "msie", sAgent ) and not find( "mac", sAgent ) and not find( "opera", sAgent ) )
  31. {
  32. // try to extract IE version
  33. stResult = reFind( "msie ([5-9]\.[0-9])", sAgent, 1, true );
  34. if( arrayLen( stResult.pos ) eq 2 )
  35. {
  36. // get IE Version
  37. sBrowserVersion = mid( sAgent, stResult.pos[2], stResult.len[2] );
  38. if( sBrowserVersion GTE 5.5 )
  39. isCompatibleBrowser = true;
  40. }
  41. }
  42. // check for Gecko ( >= 20030210+ )
  43. else if( find( "gecko/", sAgent ) )
  44. {
  45. // try to extract Gecko version date
  46. stResult = reFind( "gecko/(200[3-9][0-1][0-9][0-3][0-9])", sAgent, 1, true );
  47. if( arrayLen( stResult.pos ) eq 2 )
  48. {
  49. // get Gecko build (i18n date)
  50. sBrowserVersion = mid( sAgent, stResult.pos[2], stResult.len[2] );
  51. if( sBrowserVersion GTE 20030210 )
  52. isCompatibleBrowser = true;
  53. }
  54. }
  55. else if( find( "opera/", sAgent ) )
  56. {
  57. // try to extract Opera version
  58. stResult = reFind( "opera/([0-9]+\.[0-9]+)", sAgent, 1, true );
  59. if( arrayLen( stResult.pos ) eq 2 )
  60. {
  61. if ( mid( sAgent, stResult.pos[2], stResult.len[2] ) gte 9.5)
  62. isCompatibleBrowser = true;
  63. }
  64. }
  65. else if( find( "applewebkit", sAgent ) )
  66. {
  67. // try to extract Gecko version date
  68. stResult = reFind( "applewebkit/([0-9]+)", sAgent, 1, true );
  69. if( arrayLen( stResult.pos ) eq 2 )
  70. {
  71. if( mid( sAgent, stResult.pos[2], stResult.len[2] ) gte 522 )
  72. isCompatibleBrowser = true;
  73. }
  74. }
  75. return isCompatibleBrowser;
  76. }
  77. </cfscript>