Downloads

From Tera-WURFL

(Difference between revisions)
Jump to: navigation, search
(Documentation)
(Stable 2.0.0)
Line 1: Line 1:
__FORCETOC__  
__FORCETOC__  
==About==
==About==
-
Tera-WURFL 2.x does not include WALL4PHP. If you would like to use WALL4PHP with version 2.x, you must download the updated package below. This version is compatible with all versions of Tera-WURFL. '''To get WALL4PHP working with Tera-WURFL 2.x''', download the latest WALL4PHP file from this site, then extract the ZIP archive wherever you like. If you extract it the same folder that the Tera-WURFL folder is in, you shouldn't have to update the WALL configuration. Otherwise, edit wall_prepend.php and change the path to the TeraWurfl.php file. You can find the full path to Tera-WURFL in the Tera-WURFL admin site under '''Statistics, Settings, Log File''', then look for '''Installation Directory'''.
+
Tera-WURFL 2.x does not include WALL4PHP. If you would like to use WALL4PHP with version 2.x, you must download the updated package below. This version is compatible with all versions of Tera-WURFL. '''To get WALL4PHP working with Tera-WURFL 2.x''', download the latest WALL4PHP file from this site, then extract the ZIP archive wherever you like. If you extract it the same folder that the Tera-WURFL folder is in, you shouldn't have to update the WALL configuration. Otherwise, edit wall_prepend.php and change the path to the TeraWurfl.php file. You can find the full path to Tera-WURFL in the Tera-WURFL admin site under '''Statistics, Settings, Log File''', then look for '''[[Installation|Installation]] Directory'''.
<div style="background-color: rgb(255, 225, 227); border: 2px solid rgb(255, 202, 206); margin: 5px; padding: 5px; width: 760px;">
<div style="background-color: rgb(255, 225, 227); border: 2px solid rgb(255, 202, 206); margin: 5px; padding: 5px; width: 760px;">
-
'''IMPORTANT''': If you are using TeraWurfl 2.0.0 Stable and are experiencing problems with Firefox being detected as a mobile device, please goto your '''Web Administration Page''' and click on '''Generate Patch File''', then paste the following user agents into the box, then click the '''Generate Patch File''' button and go back to the main admin page and click''' Update WURFL from local file'''. This will override the data in the WURFL and force the Firefox user agents to be detected properly.
+
'''IMPORTANT''': If you are using TeraWurfl 2.0.0 Stable and are experiencing problems with Firefox being detected as a mobile device, please goto your '''[[Web_Administration_Page|Web Administration Page]]''' and click on '''Generate Patch File''', then paste the following user agents into the box, then click the '''Generate Patch File''' button and go back to the main admin page and click''' Update WURFL from local file'''. This will override the data in the WURFL and force the Firefox user agents to be detected properly.
<pre style="font-size: 12px">Mozilla/5.0 (Windows; U; Firefox
<pre style="font-size: 12px">Mozilla/5.0 (Windows; U; Firefox
Line 19: Line 19:
__TOC__
__TOC__
== Documentation ==
== Documentation ==
-
You should start out by reading the README file. This file contains lots of important information, like installation.
+
You should start out by reading the README file. This file contains lots of important information, like [[Installation|installation]].
Here are some important documentation links:
Here are some important documentation links:
Line 64: Line 64:
* Created MySQL4 Database Connector
* Created MySQL4 Database Connector
* Improved MySQL5 Database Connector (40% faster initial detection)
* Improved MySQL5 Database Connector (40% faster initial detection)
-
'''NOTE''': you need the CREATE ROUTINE and EXECUTE permissions as of this release
+
'''NOTE''': you need the CREATE PROCEDURE and EXECUTE permissions as of this release
* Tested many different methods to increase speed of initial detection
* Tested many different methods to increase speed of initial detection
* Fixed numerous typos
* Fixed numerous typos
 +
===Pre-Release 2.0.0 RC5===
===Pre-Release 2.0.0 RC5===
Spent a week sifting through 30,000 unique user agents over and over again while making adjustments to the UserAgentMatchers. The device detection is now extremely accurate. Not only will it detect mobile devices accurately, it is also '''very''' good at differentiating between wireless and non wireless devices. Here are the major changes:
Spent a week sifting through 30,000 unique user agents over and over again while making adjustments to the UserAgentMatchers. The device detection is now extremely accurate. Not only will it detect mobile devices accurately, it is also '''very''' good at differentiating between wireless and non wireless devices. Here are the major changes:
Line 99: Line 100:
* '''User Agent Matchers''' have been created for each of the major manufacturers. These allow for specific matching methods to be applied to the user agent like string searching, RIS (Reduction in String) and LD (Levenshtein Distance).
* '''User Agent Matchers''' have been created for each of the major manufacturers. These allow for specific matching methods to be applied to the user agent like string searching, RIS (Reduction in String) and LD (Levenshtein Distance).
-
* '''Multiple patch files''' are now supported. Tera-WURFL ships with the current '''wurfl.xml''', '''web_browsers_patch.xml''' and '''custom_web_patch.xml'''. Patch files can be added to '''TeraWurflConfig.php''' by separating them with semicolons in the '''TeraWurflConfig::PATCH_FILE''' directive. Patch files are loaded in order from left to right on top of the WURFL file, so if you want to override every other patch file, specify it last.
+
* '''Multiple patch files''' are now supported. Tera-WURFL ships with the current '''wurfl.xml''', '''web_browsers_patch.xml''' and '''custom_web_patch.xml'''. Patch files can be added to '''[[TeraWurflConfig.php|TeraWurflConfig.php]]''' by separating them with semicolons in the '''TeraWurflConfig::PATCH_FILE''' directive. Patch files are loaded in order from left to right on top of the WURFL file, so if you want to override every other patch file, specify it last.
* The '''custom_web_patch.xml''' file can be edited from the '''Web Administration''' page, and allows you to easily add non-mobile user agents to the patch file. The devices with these user agents will be detected as '''generic_web_browser''' (non-mobile).
* The '''custom_web_patch.xml''' file can be edited from the '''Web Administration''' page, and allows you to easily add non-mobile user agents to the patch file. The devices with these user agents will be detected as '''generic_web_browser''' (non-mobile).
* '''Persistent Caching''' means that your cached devices stay cached. When you update the WURFL file or your patches, your device cache is also updated via the new database.
* '''Persistent Caching''' means that your cached devices stay cached. When you update the WURFL file or your patches, your device cache is also updated via the new database.
* '''Cache Browser''' allows you to see what devices are hitting your site and what their capabilities were detected as.
* '''Cache Browser''' allows you to see what devices are hitting your site and what their capabilities were detected as.
-
* '''Installation Script''' is better than 1.5.2. Once you download Tera-WURFL and extract it, edit '''TeraWurflConfig.php''' then go to /admin/install.php and follow the directions to finish installation.
+
* '''[[Installation|Installation]] Script''' is better than 1.5.2. Once you download Tera-WURFL and extract it, edit '''[[TeraWurflConfig.php|TeraWurflConfig.php]]''' then go to /admin/install.php and follow the directions to finish [[Installation|installation]].
* '''PHP short_open_tags''' are no longer required to run Tera-WURFL. PHP has this feature disabled by default now.
* '''PHP short_open_tags''' are no longer required to run Tera-WURFL. PHP has this feature disabled by default now.
* '''Conclusive vs. Inconclusive Matching'''. If a device is matched with the UserAgentMatcher's primary matching method it is considered a conclusive match, if it is detected via a recovery matcher or by the CatchAllMatcher it is an inconclusive match. This information is available via the tera_wurfl capability group.
* '''Conclusive vs. Inconclusive Matching'''. If a device is matched with the UserAgentMatcher's primary matching method it is considered a conclusive match, if it is detected via a recovery matcher or by the CatchAllMatcher it is an inconclusive match. This information is available via the tera_wurfl capability group.
Line 116: Line 117:
===Stable 1.5.2===
===Stable 1.5.2===
-
* Introduced a smart installation script to help you get Tera-WURFL up and running fast!
+
* Introduced a smart [[Installation|installation]] script to help you get Tera-WURFL up and running fast!
getDeviceCapabilitiesFromAgent() function now returns boolean true (match) or false (no match).
getDeviceCapabilitiesFromAgent() function now returns boolean true (match) or false (no match).
* Introduced "MATCH_TO_UA_PREFIX" if true, matching will stop if the user agent prefix cannot be matched. The user agent prefix is everything from the beginning of the UA to the first '/', like "SonyEricssonK700i". If this is not matched in the WURFL, there searching will stop.
* Introduced "MATCH_TO_UA_PREFIX" if true, matching will stop if the user agent prefix cannot be matched. The user agent prefix is everything from the beginning of the UA to the first '/', like "SonyEricssonK700i". If this is not matched in the WURFL, there searching will stop.
* Introduced "RETURN_GENERIC" if true, the user agent and accept headers will be used to determine if this device iswireless or not and the capabilities array will be populated with appropriate generic data. This IS considered a match. Set this to false to stop getting generic matches.
* Introduced "RETURN_GENERIC" if true, the user agent and accept headers will be used to determine if this device iswireless or not and the capabilities array will be populated with appropriate generic data. This IS considered a match. Set this to false to stop getting generic matches.
* Introduced webservice.php which can be used to query the Tera-WURFL database via an HTTP request. The results are returned in XML. This is a BETA feature, but it is very safe. There are details and example in the head of the file.  
* Introduced webservice.php which can be used to query the Tera-WURFL database via an HTTP request. The results are returned in XML. This is a BETA feature, but it is very safe. There are details and example in the head of the file.  
-
* Re-wrote the README file - now it has very clear instructions on usage and installation.  
+
* Re-wrote the README file - now it has very clear instructions on usage and [[Installation|installation]].  
* Now Tera-WURFL includes the web browsers patch by default so you can tell Mobile and Non-Mobile devices apart.
* Now Tera-WURFL includes the web browsers patch by default so you can tell Mobile and Non-Mobile devices apart.
* Cleaned up some minor logging issues.
* Cleaned up some minor logging issues.
Line 141: Line 142:
* Added '''many feature'''s to the web administration console - seriously - check out the online demo!  
* Added '''many feature'''s to the web administration console - seriously - check out the online demo!  
* Changed default DATADIR to the included 'data' directory
* Changed default DATADIR to the included 'data' directory
-
* Completely rewrote the '''README''' file to include detailed installation instructions and other useful info
+
* Completely rewrote the '''README''' file to include detailed [[Installation|installation]] instructions and other useful info
-
* Optimized the clean installation process - now Tera-WURFL has a brain!
+
* Optimized the clean [[Installation|installation]] process - now Tera-WURFL has a brain!
* Included the current stable release of the wurfl.xml file so you don't need to download it
* Included the current stable release of the wurfl.xml file so you don't need to download it
* Included database statistics, log file monitoring and global configuration in web interface
* Included database statistics, log file monitoring and global configuration in web interface
Line 162: Line 163:
===Beta 1.4.0===
===Beta 1.4.0===
-
Added support for the [http://wurfl.sourceforge.net/utilities/device_thumbnails.php Device Thumbnails] by André van den Heever and Luca Passani.
+
Added [[Support|support]] for the [http://wurfl.sourceforge.net/utilities/device_thumbnails.php Device Thumbnails] by André van den Heever and Luca Passani.
===Beta 1.3.0===
===Beta 1.3.0===
-
* Added patching support to allow users to make changes to their WURFL database without editing the main WURFL.
+
* Added patching [[Support|support]] to allow users to make changes to their WURFL database without editing the main WURFL.
* Added the ability to enable/disable the patch without rebuilding the database.
* Added the ability to enable/disable the patch without rebuilding the database.
* Added a simple web administration utility to manage the WURFL and patch file.
* Added a simple web administration utility to manage the WURFL and patch file.

Revision as of 15:25, 3 February 2010

About

Tera-WURFL 2.x does not include WALL4PHP. If you would like to use WALL4PHP with version 2.x, you must download the updated package below. This version is compatible with all versions of Tera-WURFL. To get WALL4PHP working with Tera-WURFL 2.x, download the latest WALL4PHP file from this site, then extract the ZIP archive wherever you like. If you extract it the same folder that the Tera-WURFL folder is in, you shouldn't have to update the WALL configuration. Otherwise, edit wall_prepend.php and change the path to the TeraWurfl.php file. You can find the full path to Tera-WURFL in the Tera-WURFL admin site under Statistics, Settings, Log File, then look for Installation Directory.

IMPORTANT: If you are using TeraWurfl 2.0.0 Stable and are experiencing problems with Firefox being detected as a mobile device, please goto your Web Administration Page and click on Generate Patch File, then paste the following user agents into the box, then click the Generate Patch File button and go back to the main admin page and click Update WURFL from local file. This will override the data in the WURFL and force the Firefox user agents to be detected properly.

Mozilla/5.0 (Windows; U; Firefox
Mozilla/6.0 (Windows; U; Firefox
Mozilla/5.0 (X11; U; Linux i686; Firefox
Mozilla/6.0 (X11; U; Linux i686; Firefox
Mozilla/5.0 (X11; U; Linux x86_64; Firefox
Mozilla/6.0 (X11; U; Linux x86_64; Firefox
Mozilla/5.0 (Macintosh; U; Firefox
Mozilla/6.0 (Macintosh; U; Firefox
Mozilla/5.0 (X11; U; FreeBSD Firefox
Mozilla/6.0 (X11; U; FreeBSD Firefox

Contents

Documentation

You should start out by reading the README file. This file contains lots of important information, like installation.

Here are some important documentation links:

You can also see the highlighted source code for all the files in the Class Documentation page.

Current Version

Older Versions

Version History

Stable 2.0.0

NOTE: you need the CREATE PROCEDURE and EXECUTE permissions as of this release

Pre-Release 2.0.0 RC5

Spent a week sifting through 30,000 unique user agents over and over again while making adjustments to the UserAgentMatchers. The device detection is now extremely accurate. Not only will it detect mobile devices accurately, it is also very good at differentiating between wireless and non wireless devices. Here are the major changes:

User Agent: Alcatel-OT-280/1.0 model-orange ObigoInternetBrowser/Q03C Matcher History: AlcatelUserAgentMatcher(exact), AlcatelUserAgentMatcher(conclusive), AlcatelUserAgentMatcher(recovery), CatchAllUserAgentMatcher(recovery) This shows that the User Agent was assigned the Alcatel Matcher, but after looking for an exact match, a conclusive match and a recovery match, no match could be found - therefore the CatchAll Matcher was used to make a last-resort desicion.

Tera-WURFL Total Time: 12.081017971039 sec Devices Processed: 23902 Total Queries: 23912

WURFL PHP API Total Time: 217.57795381546 sec Devices Processed: 23902 Total Queries: N/A

As you can see, Tera-WURFL is still the best choice for accuracy and performance. Tera-WURFL may be even faster than these number indicate since the WURFL PHP API was benefiting greatly from my Samsung SSD.

Hardware used for testing: Dell Studio XPS Laptop, Core 2 Duo 2.8GHz, 4GB DDR2, 256GB Samsung SSD, Microsoft Windows 7 Ultimate x64, WampServer 2.0 (Apache 2.2.11, PHP 5.3.0, MySQL 5.1.36)

Pre-Release 2.0.0 RC4

Rewrote some of the UserAgentMatchers and deleted others to bring Tera-WURFL on par with the Java WURFL API. With the introduction of desktop browser UserAgentMatchers, we no longer need to use the large web patch; instead, you can just use the 8KB one from wurfl.sourceforge.net (included). Also, I fixed some typos and bugs here and there. NOTE: if you are upgrading from version 2.0.0 RC1-RC3 you should delete all your database tables before you update. You can leave the terawurflcache table if you want to retain your cache. Although it will still technically work even if you don't delete the tables, you will be orphaning some unecessary tables in your database.

Pre-Release 2.0.0 RC3

Complete code-rewrite from the ground up. The 2.x version of Tera-WURFL is loosely based on a pre-release of the Java WURFL Evolution Library, but the API is taken from Tera-WURFL 1.5.2. The following is a list of features found in Tera-WURFL 2.0:

Stable 1.5.2

getDeviceCapabilitiesFromAgent() function now returns boolean true (match) or false (no match).

Stable 1.5.1

Fixed a bug that prevented the updating system from working correctly over the web.
If you have version 1.5.0 you can delete line 266 from the file tera_wurfl_parser.php and it will function the same as 1.5.1.

Stable 1.5.0

Beta 1.4.4

Beta 1.4.3

Beta 1.4.2

Beta 1.4.1

Fixed issues with incorrectly identified device root resulting in the wrong device image being used.

Beta 1.4.0

Added support for the Device Thumbnails by André van den Heever and Luca Passani.

Beta 1.3.0

Beta 1.2

Initial public release. Basic implementation of the library - very limited documentation included in comments.

Alpha2

Internal release. This is left on the site for historical reasons only. Use of this version is not recommended!

Personal tools
Namespaces
Variants
Actions
WURFL DBAPI
Toolbox