3rd Party Libraries Used

In the Geo software, we utilize a number of 3rd party software libraries, which are listed below in sort-of directory listing order. Feel free to reference any of these libraries in your Addon, but pay attention to the notes on each library as some are slated for removal in future releases. If you see any out of date information, or if you know of a library with a newer version than listed below let us know about it!

Note that if you have a version earlier than what is listed under last updated, you will need to refer to your version's files to see what version of the library is included with your version.

Warning: Take note of the use of Prototype JS and Scriptaculous, which are not compatible with some other JS libraries such as MooTools. See the notes in the Prototype (Javascript Framework) for more info.

ADOdb (Database Access)

Name ADOdb
Location classes/adodb/
URL http://adodb.sourceforge.net/
Version & Release Date V5.11 (PHP5 only) 5 May 2010
Last Updated in Geo 3 March, 2011 (Version 6.0.0)
Usage in Geo Used by DataAccess class.

Usage Notes: We advise to not use this library directly, but use the Geo data accessor DataAccess which wraps the ADOdb class, and adds additional functionality on top of that. See the PHP Docs for the DataAccess class for more information.

PayPal SDK (Paypal Pro Gateway)

Name PayPal SDK
Location classes/PEAR/PayPal/ 1)
URL http://www.paypal.com/sdk (SOAP SDKs - PHP .zip package half way down the page)
Version PHP SDK V59
Last Updated in Geo 10/02/2009 (Version 4.1.0)
Usage in Geo In the PayPal Pro payment gateway.

Usage Notes: Added in Geo 4.1.0. The old location is in the Services/ directory, we have updated it (we were previously using a beta version from 2006) and moved its home to the directory noted.

PclZip

Name PclZip
Location classes/pclzip/
URL http://www.phpconcept.net/pclzip
Version 2.8.2
Last Updated in Geo 01/12/2011 (Version 5.2.0)
Usage in Geo Alternative to PHP Zip extension, for servers that do not have that extension loaded.

Usage Notes: Added in Geo 5.2.0. This library is only used on servers where the built in zip extension is not loaded in PHP, which apparently is often enough to warrant using an alternative. We advise not to use this class directly, if the Zip extension ever becomes “common place” enough, we may remove this library.

Swift Mailer (E-Mail)

Name Swift Mailer PHP5 version
Location classes/php5_classes/swift/
URL http://swiftmailer.org/
Version V3.3.3
Last Updated in Geo 01/08/2009
Usage in Geo In the E-Mail Send Direct Addon, which is a system addon that sends all the e-mails.

Usage Notes: In 4.0 just use the geoEmail::sendMail() method to send e-mails, see that method's documentation for more info.

Future Plans: There is a new version of Swift Mailer out which is a total re-write from previous versions. We have plans to move the e-mail functionality totally into the geoEmail class (right now that class just acts as a wrapper, relying on the addon to do the actual e-mailing), and at that time we will recode it to use the new version of the Swift Mailer. This is planned for a future release but since it is not done yet, no word on how soon that will be. The 5.0 line will continue to use the 3.3.3 version.

Prototype (Javascript Framework)

Name Prototype JavaScript framework
Location js/prototype.js
URL http://www.prototypejs.org/
Version & Release Date 1.7
Last Updated in Geo 03/04/2011 (Version 6.0.0)
Usage in Geo Used extensively in the Admin panel in conjunction with Scriptaculous. It is being used on the client side as well.

Usage Notes: If you plan to do any JS stuff that requires a javascript framework, we highly recommend to stick to things that are based on or totally compatible with Prototype and Scriptaculous. The amount the software relies on those 2 will only increase as time goes on.

JQuery Compatibility: We recommend using Prototype since that is what is used in the software2). However, if you are more familiar with using JQuery and just want to get a quick “proof of concept” up and running, or perhaps if you have already created customizations for previous versions of the Geo software written using JQuery, see Using jQuery with Other Libraries for documentation on how to keep using JQuery along side Prototype.

Warning: Avoid using Mootools as it will directly conflict with Prototype, causing you problems in future versions of Geo the more the software utilizes the library. This applies to any JS libraries that conflict with Prototype or Scriptaculous, before you decide to use something JS based ensure that it is compatible.

There's nothing wrong with Mootools or JQuery or any of the others, we just happened to choose Prototype & Scriptaculous.

Note that starting with Version 6.0.0, it is possible to load this library from Google Libraries API rather than off the local site. See the Use Google Libraries API setting in the admin at Design > Template Sets in the Advanced Settings section.

Script.aculo.us (Prototype-based Javascript Effects)

Name script.aculo.us
Location js/scriptaculous/
URL http://script.aculo.us/
Version v1.9.0
Last Updated in Geo 04 March, 2011 (Version 6.0.0)
Usage in Geo Used extensively in the Admin panel3). It is starting to be used on the client side as well4)

Usage Notes: Check out the docs on Script.aculo.us there is a lot that can be done with this library. There is also a ton of things based off of this library, if you are used to using Mootools and there is something you can do in Mootools but don't see it here, just do a google search for “prototype” and whatever it is. For example “prototype calendar” comes up with this handy script that is fully documented, lightweight, and a great solution instead of the Mootools calendar equivalent.

If you want to use scriptaculous on a page on the client side5), simply do the following6):

$view = geoView::getInstance();
$view->scriptaculous = 1;

Note that there is nothing equivalent for using Prototype, as it is used on every page, so nothing fancy is needed to use the Prototype on the client side or admin, you can just trust that it will be there7).

Note that starting with Version 6.0.0, it is possible to load this library from Google Libraries API rather than off the local site. See the Use Google Libraries API setting in the admin at Design > Template Sets in the Advanced Settings section. At least it will be once the Google Library API is updated with the latest version of Scriptaculous, version 1.9.0.

CalendarView (Prototype-based)

Name CalendarView
Location js/calendarview.js
URL http://calendarview.org/
Version v1.2
Last Updated in Geo 25 August, 2010 (Version 5.1.2)
Usage in Geo Used in the admin panel, currently only in specific addons.

Usage Notes: This is currently only used in the admin panel, but we may start using it on the front side in future releases. The CSS is currently located at admin/css/calendarview.css.

IXR (XML-RPC Library)

Name IXR - The Inutio XML-RPC Library
Location classes/rpc/
URL http://scripts.incutio.com/xmlrpc/
Version & Release Date 1.7.4 (7th September 2010)
Last Updated in Geo 03/04/2011 (Version 6.0.0)
Usage in Geo In the Remote API system, used to communicate.

Usage Notes: When using the Remote API you don't have to worry about communication with the “client” script, in the remote API call all you need to do is return the data as you want the client to receive it, and the Geo Remote API system will take care of it for you.

Smarty (Template system)

Name Smarty
Location classes/php5_classes/smarty/
URL http://www.smarty.net
Version & Release Date 3.0.7 (Dec 19, 2011)
Last Updated in Geo 23 January, 2012 (version 6.0.3)
Usage in Geo Used in the geoTemplate class (that class extends the Smarty class). The geoTemplate class is used throughout the Geo software

Usage Notes: See the geoView and geoTemplate documentation.

SWFUpload (Upload Files)

Name SWFUpload
Location classes/swfupload/
URL http://www.swfupload.org
Version & Release Date 2.2.0.1 (March 2009)
Last Updated in Geo 19 April, 2009
Usage in Geo Used in the standard image upload page during place a listing and edit listing process.8)

Usage Notes See the documentation on the SWF Upload website for usage. This library was first added in Geo version 4.1.0.

Modification Notes We have applied a small change from SWFUpload v2.5.0 Beta 3 from the JS file, the change applied should make the “instability checks” more accurate. This was done in Geo version 5.2.1.

TinyMCE (WYSIWYG Editor)

Name TinyMCE & TinyMCE Compressor PHP
Location js/tiny_mce/
URL http://tinymce.moxiecode.com/
Version & Release Date - TinyMCE - Version 3.4.2 (2011-04-07)
- TinyMCE Compressor PHP - Version 2.0.4 (2011-03-23)
Last Updated in Geo - TinyMCE - 05/09/2011 (In Version 5.2.3)
- TinyMCE Compressor PHP - 05/09/2011 (In Version 5.2.3)
Usage in Geo Used as the WYSIWYG editor anywhere such an editor is used.

Usage Notes: If you wish to customize the TinyMCE configuration that is used, see Customizing the TinyMCE Display (WYSIWYG editor) V5

CodeMirror

Name CodeMirror
Location js/codemirror/
URL http://codemirror.net/
Version & Release Date 2.18 (21-11-2011)
Last Updated in Geo November 30, 2011 (Version 6.0.1)
Usage in Geo Used as the text editor on the <..> Source Code Editor tab when editing files under Design > Manager.

Usage Notes: This is only available starting on version 6.0.0. See documentation on http://codemirror.net/ for usage on other pages within the software.

1) As of Geo version 4.1.0, old location in Services/
2) Note that it is considered “best practice” to use a 3rd party library that is already included as part of the main software. The exception to that is in cases where there is some functionality that is just not possible with an included library.
3) For example, see the admin accordion-style menu? That's totally done with Script.aculo.us
4) See the standard image uploader and the Lightbox image slideshow view.
5) Note that Scriptaculous is used on every page in the admin because of the admin menu
6) , 7) , 8) As of Geo version 4.1.0
developers/libraries_used/start.txt · Last modified: 2012/01/23 14:06 by jonyo
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0