Gossamer Forum
Home : Gossamer Threads Inc. : Announcements :

Links SQL 2.2.0 released

Quote Reply
Links SQL 2.2.0 released
We're pleased to announce the release of Links SQL 2.2.0.

This release features payment support, allowing you to set up a Links SQL installation that can accept payments through PayPal, WorldPay, 2CheckOut, Moneris, and Authorize.Net payment providers. Through various configuration options, you can set up your Links SQL installation to always require payments for links, or optionally accept payments (paid links show up above free links). Additionally, you have the option to customize payment options right down to the per-category level, or simply choose to use the same payment options for all categories. Payments are specified by price and term - for example, $5 for 1 week, or $50 for a non-expiring link. Discounts can also be configured for users who have purchased a certain number of links. For more details on the new payment support, see the "Payment" section of the Links SQL manual, and the Payment help page in the admin panel.

New features:
  • Payment support, outlined above.
  • Going along with the payment support, a new cron job, /path/to/admin/cron/expiry_notify.pl, has been added and needs to be run to perform link expiry notifications. Details on setting up the cron job are on the Payments help page.
  • mod_perl 2 now supported. Although this isn't final support, barring any major changes between the current (1.99.13) and final (2.0) releases, the code should handle the final mod_perl 2 release.
  • Template diffs are now included, going back to 2.0.3.
  • Config file protection. The code handling Links SQL's configuration file has been updated to more carefully handled to reduce config file corruption due to full disk space, multiple Links SQL instances attempting to simultaneously save to the config file, and various disk writing errors. To accomodate the change, the configuration file was moved from Links/ConfigData.pm to Links/Config/Data.pm, which is consistent with other Gossamer Threads products.
  • Environment page in admin panel has changed the display of mod_perl/SpeedyCGI debugging output, including an indicator for mod_perl-2 detection.
  • Link information is now displayed in templates differently; the old behaviour used: <%Links::Utils::load_link%> to display a link. The new, and much more efficient usage is: <%Links::Utils::load_link_info%><%include link.html%>, and it may correct some possibly problems with globals used within the link.html template.
  • The version of FileMan included in the admin panel has been upgraded, with various new features and bug fixes, as well as an updated appearance.
  • An admin/Links/Custom.pm file has been added which may contain any special instructions or custom code needed for your installation. By default it is empty, and it will not be overwritten by future upgrades. The file is loaded after Links.pm starts loading, but generally before any other modules.

Bug fixes:
  • The '---' category has been removed from the Link Add page in the admin panel; previously duplicate links were possible if --- was selected along with other categories.
  • On recent MySQL versions (4.1+) and some non-MySQL databases, you'd run into the error "The record you are attempting to modify has changed since you last accessed it" even when no change has been made. This is now fixed. Note that this is not the same problem reported in this thread.

Developer changes:
The following list contains internal changes that may affect some plugin developers or users modifying Links SQL. Users who do not directly modify or create plugins for Links SQL can ignore the following changes.
  • As indicated above, the configuration file is now located at admin/Links/Config/Data.pm, not the old admin/Links/ConfigData.pm. This should not be a big concern as the $CFG variable's functionality has not changed.
  • Links.pm now offers the export tag ':objects' (i.e. use Links qw/:objects/) which will make $IN, $CFG, $DB, $USER, and VIEWABLE available in your code. However, for plugins that are intended to work with pre-2.2.0 versions, the old style of import (use Links qw/$CFG $IN $DB/) is still required.
  • Previously, a link was "viewable" in Links SQL if it had the 'isValidated' column set to 'Yes'. Due to the addition of payment support, the way to determine whether or not a link is viewable has changed, and a subroutine VIEWABLE has been added to Links.pm (it can be imported via 'use Links qw/VIEWABLE/', or via 'use Links qw/:objects/', or used directly such as Links::VIEWABLE), which returns a Condition object that should be used, such as: $DB->table('Links')->select(VIEWABLE). See the comments above the VIEWABLE subroutine in Links.pm for more complex examples.
  • The subclasses for the Links, Category, and Users tables have been split up and moved; previously, both 'Table' and 'HTML' subclasses were in the Links/Link.pm, Links/Category.pm, and Links/Users.pm files, respectively. The 'Table' and 'HTML' subclasses are now in Links/Table/(Links,Users,Category).pm and Links/HTML/(Links,Users,Category).pm, respectively. The plugin hooks provided by the subclasses have not changed.
  • Links/Browser/Controler.pm has been renamed to the correct spelling of Links/Browser/Controller.pm.
  • The $Links::DATE_LOADED variable has been replaced with $Links::LOADED{date} - %Links::LOADED may also be used by plugins for initialization purposes as desired - it will be cleared at the beginning of every request, even when under persistent environments.
  • Links/SQL.pm was cleaned up to more easily show Links SQL table structures.
  • Related to the Links::Utils::load_link_info change described in the Features section above, Links::SiteHTML now has a 'tags' function which (currently) accepts a 'link' argument - it is designed to provide the tags necessary to include a template, rather than returning the HTML for a template as the display() method does. A new plugin hook is provided, 'site_tags_link', for altering link information without needing the adjust HTML, as is the case with 'site_display_link'.
  • The extra template sets available (av, mint, simple, snap, and yahoo) now inherit their language.txt and e-mail templates from the 'default' template set. This won't accept existing upgraded installations, but will affect new Links SQL installations.

This is a free download for all Links SQL owners. If you prefer, we can perform the upgrade for you for a charge of $75 - please contact us at sales@gossamer-threads.com to schedule an upgrade.

Links SQL 2.2.0 is available now from the download area.

Jason Rhinelander
Gossamer Threads
jason@gossamer-threads.com