CHANGELOG v1.7.0 Stable A = Added new file M = Modified existing file ************************************************************************ * Important Notes (2) ************************************************************************ 1. With the release of v1.7 we will no longer support *import* from PHPAudit or Iono. If you still haven't migrated to SPBAS then you will need to install v1.6, import and then upgrade to the current release. 2. One of the big features of v1.7 is the release of the SPBAS licensing method. We recommend you use this method over both PHPAudit and Iono when at all possible. Q. I'm already using the PHPAudit/Iono method. Will I need to upgrade the integration code in my application? A. Nope, not unless you just want to. Q. I am committed to using PHPAudit/Iono, I don't want to use the SPBAS method. Can I still use the PHPAudit/Iono licensing methods? A. Sure, absolutely. Nothing will change for you. Q. What are the main advantages of using SPBAS licensing? A. It's easy to use & understand; Combines the best of PHPAudit, Iono and our experience to date; It's a single class that's very easy to integrate, yet very powerful & feature rich at the same time. More information: http://spbas.com/docs/index.php?task=article&article_id=32 ************************************************************************ * New Features (4) ************************************************************************ 1. Added the new SPBAS licensing method. ------------------------------------------------------------------------ A admin/modules/licensing_methods/SPBAS/ 2. Added support for Post Affiliate Pro integration. ------------------------------------------------------------------------ M /trunk/admin/modules/3rd_party/editor.php M /trunk/admin/modules/3rd_party/lib/classes/3rd_party.php A /trunk/admin/modules/3rd_party/modules/Post_Affiliate_Pro A /trunk/admin/modules/3rd_party/modules/Post_Affiliate_Pro/run.php A /trunk/admin/modules/3rd_party/modules/Post_Affiliate_Pro/settings.php A /trunk/admin/templates/modules/3rd_party/modules/Post_Affiliate_Pro A /trunk/admin/templates/modules/3rd_party/modules/Post_Affiliate_Pro/settings.php 3. Added 14 new code hooks. ------------------------------------------------------------------------ M /trunk/api/modules/customer_areas/add_contact.php M /trunk/api/modules/customer_areas/change_password.php M /trunk/api/modules/customer_areas/download.php M /trunk/api/modules/customer_areas/login.php M /trunk/api/modules/customer_areas/my_account.php M /trunk/api/modules/customer_areas/register.php M /trunk/api/modules/customer_areas/resend_password.php M /trunk/api/modules/customer_areas/update_contact.php M /trunk/api/modules/license/SPBAS_validate_license.php M /trunk/api/modules/order_forms/create_customer_account.php M /trunk/api/modules/order_forms/login.php M /trunk/api/modules/order_forms/order_complete.php M /trunk/api/modules/order_forms/resend_password.php M /trunk/api/modules/order_forms/update_customer_account.php 4. Abstracted ALL api::query() calls into wrapper functions that are now documented. See "Storefront API Wrappers" here: http://spbas.com/docs/api/v1.7/ ------------------------------------------------------------------------ M /trunk/customers/compiler/my_account.php M /trunk/customers/compiler/my_invoices.php M /trunk/customers/compiler/my_package_details.php M /trunk/customers/compiler/my_packages.php M /trunk/customers/compiler/opt_out.php M /trunk/customers/compiler/public_announcements.php M /trunk/customers/compiler/register.php M /trunk/customers/includes/classes/api.php M /trunk/customers/includes/globals.php M /trunk/customers/index.php M /trunk/kb/compiler/article.php M /trunk/kb/compiler/bookmarks.php M /trunk/kb/compiler/down_for_maintenance.php M /trunk/kb/compiler/glossary.php M /trunk/kb/compiler/index.php M /trunk/kb/compiler/listings.php M /trunk/kb/compiler/print_page.php M /trunk/kb/compiler/private.php M /trunk/kb/compiler/search.php M /trunk/kb/includes/classes/api.php A /trunk/kb/includes/classes/api_wrappers.php M /trunk/kb/includes/globals.php M /trunk/order/includes/classes/api_wrappers.php M /trunk/order/templates/default/order_complete.php M /trunk/order/includes/globals.php M /trunk/api/modules/order_forms/add_to_cart.php M /trunk/api/modules/order_forms/cart.php M /trunk/api/modules/order_forms/checkout.php M /trunk/api/modules/order_forms/create_customer_account.php M /trunk/api/modules/order_forms/customer_data_complete.php M /trunk/api/modules/order_forms/order_process.php M /trunk/api/modules/order_forms/payment.php M /trunk/api/modules/order_forms/product.php M /trunk/api/modules/order_forms/update_cart.php M /trunk/api/modules/order_forms/update_customer_account.php M /trunk/api/modules/order_forms/view_cart.php M /trunk/cms/index.php M /trunk/customers/index.php M /trunk/kb/index.php M /trunk/order/compiler/cart.php M /trunk/order/compiler/change_currency.php M /trunk/order/compiler/checkout.php M /trunk/order/compiler/down_for_maintenance.php M /trunk/order/compiler/order_complete.php M /trunk/order/compiler/order_process.php M /trunk/order/compiler/payment.php M /trunk/order/compiler/payments.php M /trunk/order/compiler/private.php M /trunk/order/compiler/process_ideal_gateway_response.php M /trunk/order/compiler/product.php M /trunk/order/compiler/view_cart.php A /trunk/order/includes/classes/api_order_form_wrappers.php M /trunk/order/includes/functions.php M /trunk/order/includes/globals.php M /trunk/order/index.php ************************************************************************ * Improvements (14) ************************************************************************ 1. Refactored the licensing; combined methods & types + new UI, replaced the license_server/ package with an API. ------------------------------------------------------------------------ M admin/modules/licensing_methods/ M admin/modules/licensing_methods/ 2. Rewrote the 3rd Party Module system with strong support for code hooks. ------------------------------------------------------------------------ M admin/modules/3rd_party/ M admin/templates/modules/3rd_party/ 3. Added an extra argument to forms::textarea() for javascript entries. ------------------------------------------------------------------------ M /trunk/admin/modules/common/lib/classes/forms.php 4. Sending test e-mails for a mass mail campaign now forces you to save your changes first. ------------------------------------------------------------------------ M /trunk/admin/templates/modules/email/campaign_edit.php M /trunk/admin/templates/modules/email/javascript/module.js 5. Added a requirements check to the installer, plus reduced it down to only 3 steps. ------------------------------------------------------------------------ M /trunk/admin/index.php M /trunk/admin/modules/license_methods/method_edit.php D /trunk/install/compiler/step_four.php M /trunk/install/compiler/step_three.php M /trunk/install/index.php M /trunk/install/templates/default/eula.php A /trunk/install/templates/default/missing_requirement.php D /trunk/install/templates/default/step_four.php M /trunk/install/templates/default/step_one.php M /trunk/install/templates/default/step_three.php M /trunk/install/templates/default/step_two.php 6. Extended the license_expire_date API to return the download control expires date for PHPAudit & Iono methods. ------------------------------------------------------------------------ M /trunk/admin/modules/download_control/lib/classes/download_control.php M /trunk/admin/modules/license/lib/extend.php M /trunk/api/configuration.php M /trunk/api/index.php M /trunk/api/modules/license/license_expire_date.php 7. Added a 3rd argument to a(), s() and sx() to set utf-8 charset. ------------------------------------------------------------------------ M /trunk/admin/index.php M /trunk/admin/modules/common/lib/functions.php M /trunk/cms/includes/functions.php M /trunk/customers/includes/functions.php M /trunk/install/includes/functions.php M /trunk/kb/includes/functions.php M /trunk/order/includes/functions.php 8. Added additional checks for price_sheet_id validation at view cart. ------------------------------------------------------------------------ M /trunk/api/modules/order_forms/payment.php M /trunk/api/modules/order_forms/product.php M /trunk/api/modules/order_forms/view_cart.php 9. Added an additional check to see if the HTTP_HOST is an IP address or not. If it is, just return the IP in cookie_domain() instead of adding a . prefix to it. ------------------------------------------------------------------------ M /trunk/admin/modules/common/lib/functions.php M /trunk/cms/includes/functions.php M /trunk/kb/includes/functions.php M /trunk/order/includes/functions.php 10. Paypal subscription payments are now processed automatically. ------------------------------------------------------------------------ M /trunk/admin/modules/pay_gateways/Paypal/return.php M /trunk/admin/modules/pay_gateways/lib/classes/pay_gateways.php 11. Paypal sandbox mode will now validate IPN posts. ------------------------------------------------------------------------ M /trunk/admin/modules/pay_gateways/Paypal/return.php 12. Can now search user information at the customer editor view. ------------------------------------------------------------------------ M /trunk/admin/modules/customers/lib/classes/customers.php 13. The storefront API handlers now gracefully fail over to use fsockopen() if curl is not available. ------------------------------------------------------------------------ M /trunk/cms/includes/classes/api.php M /trunk/customers/includes/classes/api.php M /trunk/install/includes/classes/api.php M /trunk/kb/includes/classes/api.php M /trunk/order/includes/classes/api.php 14. Updated x() with the ability to set the order in which $_GET, $_POST & $_COOKIE (gpc) are checked. ------------------------------------------------------------------------ M /trunk/admin/modules/common/lib/functions.php M /trunk/cms/includes/functions.php M /trunk/customers/includes/functions.php M /trunk/install/includes/functions.php M /trunk/kb/includes/functions.php M /trunk/order/includes/functions.php M /trunk/admin/modules/common/lib/functions.php M /trunk/cms/includes/functions.php M /trunk/customers/includes/functions.php M /trunk/install/includes/functions.php M /trunk/kb/includes/functions.php M /trunk/order/includes/functions.php ************************************************************************ * Bug Fixes (65) ************************************************************************ 1. Fixed a html entities issue with the customer area invoice display. ------------------------------------------------------------------------ M /trunk/customers/compiler/invoice.php 2. Default $currency to an array datatype. ------------------------------------------------------------------------ M /trunk/admin/modules/currency/lib/currency.php 3. Fixed pagination bug at the customer area announcements view. ------------------------------------------------------------------------ M /trunk/admin/modules/customer_areas/customer_area_edit.php M /trunk/admin/templates/modules/customer_areas/customer_area_edit.php 4. The sort option for addons will now only appear when more than one addon is checked. ------------------------------------------------------------------------ M /trunk/admin/templates/modules/products/product_edit.php 5. KB is now set to enable nl2br for articles automatically for new installs. ------------------------------------------------------------------------ M /trunk/install/sql/spbas.sql 6. Clickbank test sales now process just real sales for testing. ------------------------------------------------------------------------ M /trunk/admin/modules/pay_gateways/Clickbank/return.php 7. Added an option to the Paypal gateway that gives you the choice of creating subscriptions at Paypal or just letting SPBAS handle subscriptions. Defaults to letting SPBAS handle it. ------------------------------------------------------------------------ M /trunk/admin/modules/pay_gateways/Paypal/admin.php M /trunk/admin/modules/pay_gateways/Paypal/form.php M /trunk/admin/templates/modules/pay_gateways/Paypal/admin.php 8. Added description as a valid key in the callback function in the customer area public downloads section. ------------------------------------------------------------------------ M /trunk/customers/compiler/downloads.php 9. The link to the order from the pay gateway log view was broken. ------------------------------------------------------------------------ M /trunk/admin/modules/pay_gateways/pay_gateway_editor.php 10. Now logs the response when trying to generate invoices and request fails. ------------------------------------------------------------------------ M /trunk/admin/modules/customers/customer_edit.php 11. No access key passed in now redirects back to the order system. ------------------------------------------------------------------------ M /trunk/order/compiler/order_complete.php 12. Fixed the pay gateway notes for Clickbank to use the order form URLs instead of the customer area URLs. ------------------------------------------------------------------------ M /trunk/admin/templates/modules/pay_gateways/Clickbank/gateway_notes.php 13. Fixed array_merge issue in process_messages(). ------------------------------------------------------------------------ M /trunk/admin/modules/common/lib/functions.php 14. Fixed issue with parent package ID being used in the assets issued check when ordering a renewal product. ------------------------------------------------------------------------ M /trunk/admin/modules/orders/lib/classes/orders.php M /trunk/admin/modules/packages/lib/classes/packages.php 15. Changing the package status now considers the total number of instances that have been consumed in changing the status to Active or Reissued. ------------------------------------------------------------------------ M /trunk/admin/modules/packages/lib/classes/packages.php 16. Fixed bug that prevented more than 5 currencies from showing up on the recent invoices graph on the admin dashboard. ------------------------------------------------------------------------ M /trunk/admin/modules/currency/lib/currency.php M /trunk/admin/modules/dashboard/lib/classes/dashboard.php 17. Changing the package status now changes the invoice package status column too. ------------------------------------------------------------------------ M /trunk/admin/modules/packages/lib/classes/packages.php 18. Fixed bug with the invoice line item editor. When you clicked manage the same part would show up for edit no matter what. ------------------------------------------------------------------------ M /trunk/admin/modules/invoices/invoice_edit.php 19. Fixed bug with the pay gateway log paging losing tab focus. ------------------------------------------------------------------------ M /trunk/admin/modules/pay_gateways/pay_gateway_edit.php 20. Fixed issue with 100% coupon bug that caused assets not to be issued from the order system. ------------------------------------------------------------------------ M /trunk/admin/modules/orders/lib/classes/orders.php 21. Fixed bug with group by query in validate(). ------------------------------------------------------------------------ M /trunk/admin/modules/promotions/lib/classes/promotions.php 22. Fixed broken link when clicking to view a license log from the main list in admin. ------------------------------------------------------------------------ M /trunk/admin/modules/license/logs.php 23. Fixed bug that stored the posted password in the password field, in a hidden div after a password resend. Unsets $_POST[password] just after resending it now. ------------------------------------------------------------------------ M /trunk/admin/modules/login/login.php 24. The invoice totals now account for invoices marked as deleted. ------------------------------------------------------------------------ M /trunk/admin/modules/dashboard/lib/classes/dashboard.php 25. Fixed bug causing inaccurate tax totals displayed at both the order and invoice parts level. ------------------------------------------------------------------------ M /trunk/admin/modules/invoices/lib/classes/invoices.php M /trunk/admin/modules/orders/lib/classes/orders.php M /trunk/api/modules/order_forms/payment.php 26. Fixed bug that ignored qty when calculating taxes owed at order checkout. ------------------------------------------------------------------------ M /trunk/admin/modules/order_forms/lib/classes/order_forms.php 27. The addon product status must now be Public for an addon to show up. Before only the product pricing status was checked. ------------------------------------------------------------------------ M /trunk/api/modules/order_forms/product.php 28. Cast the paid in full check in order::process() as an integer. ------------------------------------------------------------------------ M /trunk/admin/modules/orders/lib/classes/orders.php 29. Fixed too many redirects issue with the license log when trying to view a license that has been deleted. ------------------------------------------------------------------------ M /trunk/admin/modules/license/logs.php 30. Fixed bug that wouldn't not allow a promotion code expiration date to be blank or 0. ------------------------------------------------------------------------ M /trunk/admin/modules/promotions/lib/classes/promotions.php 31. Fixed PHP undefined index error messages. ------------------------------------------------------------------------ M /trunk/admin/modules/common/lib/functions.php M /trunk/admin/modules/order_forms/lib/classes/order_forms.php M /trunk/api/modules/order_forms/cart.php 32. Modified the add user link to go to the add customer screen. Removed direct link to user editor from the dashboard. Fixed sortables on the user editor view. ------------------------------------------------------------------------ M /trunk/admin/modules/users/user_editor.php M /trunk/admin/templates/modules/dashboard/index.php M /trunk/admin/templates/modules/users/user_editor.php 33. Fixed issue with incorrect top currency displayed on the customer dashboard in the admin area. ------------------------------------------------------------------------ M /trunk/admin/modules/dashboard/lib/classes/dashboard.php 34. Fixed a bug that passed an incorrect currency to Google checkout. ------------------------------------------------------------------------ M /trunk/api/modules/order_forms/view_cart.php 35. Fixed non auto-updating of the invoice as paid for the iDeal pay gateway. ------------------------------------------------------------------------ M /trunk/admin/modules/pay_gateways/iDEAL/return.php 36. Public download category status did not work. ------------------------------------------------------------------------ M /trunk/admin/modules/customer_areas/customer_area_edit.php M /trunk/admin/modules/customer_areas/lib/classes/customer_area.php M /trunk/admin/templates/modules/customer_areas/customer_area_edit.php M /trunk/api/modules/customer_areas/downloads.php 37. Fixed too many redirects issue when clicking the back button at the media set editor view. ------------------------------------------------------------------------ M /trunk/admin/templates/modules/media/set_editor.php 38. Fixed PHP fatal error with the license validation. ------------------------------------------------------------------------ M /trunk/admin/modules/customers/customer_edit.php M /trunk/admin/modules/getting_started/lib/classes/getting_started.php M /trunk/admin/modules/license_methods/PHPAudit/validate.php 39. Paypal payments now use a (.) for amounts due going to Paypal regardless of the decimal separator configuration in SPBAS. ------------------------------------------------------------------------ M /trunk/api/modules/order_forms/payment.php 40. The paging for the user logs lost focus. ------------------------------------------------------------------------ M /trunk/admin/modules/users/user_edit.php 41. Added a new API for Javascript licensing. ------------------------------------------------------------------------ A /trunk/api/modules/license/validate_via_js.php 42. Fixed add to cart bug with IE8. ------------------------------------------------------------------------ M /trunk/order/index.php 43. Added missing sx() in certain spots. ------------------------------------------------------------------------ M /trunk/admin/modules/common/lib/classes/email_handler.php M /trunk/admin/templates/custom/default/header.php M /trunk/admin/templates/modules/email/logs.php M /trunk/admin/templates/modules/invoices/invoice_edit.php M /trunk/admin/templates/modules/order_forms/order_form_edit.php M /trunk/admin/templates/modules/pay_gateways/pay_gateway_edit.php M /trunk/admin/templates/modules/pay_gateways/pay_gateway_editor.php M /trunk/admin/templates/modules/products/product_edit.php M /trunk/admin/templates/modules/users/user_edit.php M /trunk/cms/templates/default/header.php M /trunk/customers/templates/default/header.php M /trunk/customers/templates/default/invoice.php M /trunk/customers/templates/default/my_packages.php M /trunk/kb/templates/default/article.php M /trunk/kb/templates/default/down_for_maintenance.php M /trunk/kb/templates/default/header.php M /trunk/order/templates/default/header.php M /trunk/admin/modules/common/lib/functions.php M /trunk/admin/modules/dashboard/index.php M /trunk/admin/modules/invoices/invoice_edit.php M /trunk/admin/templates/custom/default/header.php M /trunk/admin/templates/modules/products/product_edit.php M /trunk/cms/includes/functions.php M /trunk/customers/includes/functions.php M /trunk/install/includes/functions.php M /trunk/kb/includes/functions.php M /trunk/order/includes/functions.php 44. SMTP username & password are no longer required when configuring e-mail transports. ------------------------------------------------------------------------ M /trunk/admin/modules/email/settings_edit.php 45. Added code to remove any .php and trailing slashes on the licensing server URL. ------------------------------------------------------------------------ M /trunk/admin/modules/license/lib/classes/licensing.php 46. Added missing dependancy for taxes after removing the setup module in v1.6. ------------------------------------------------------------------------ M /trunk/admin/modules/settings/lib/extend.php 47. Fixed layout in FF and Chrome where the top tabs were 1px off. ------------------------------------------------------------------------ M /trunk/admin/modules/users/lib/classes/users.php M /trunk/admin/templates/custom/default/css/layout.css M /trunk/api/modules/order_forms/create_customer_account.php 48. Removed stray tag on line 23. ------------------------------------------------------------------------ M /trunk/customers/templates/default/my_packages.php 49. Fixed broken licensing search from Admin -> Home -> Search -> Licensing. ------------------------------------------------------------------------ M /trunk/admin/modules/search/index.php 50. Removed duplicate key in $data passed to the API. ------------------------------------------------------------------------ M /trunk/order/compiler/checkout.php M /trunk/order/compiler/payment.php 51. Invoices will only create if the package status is Active in addition to the previously existing checks. ------------------------------------------------------------------------ M /trunk/admin/modules/invoices/lib/classes/invoices.php 52. Fixed issue with PHPAudit license validation related to index 13 for the most far out expiration date. Now takes into consideration the download control status which must be Active. ------------------------------------------------------------------------ M /trunk/admin/modules/license_methods/PHPAudit/functions.php 53. Fixed double task= issue in href() ------------------------------------------------------------------------ M /trunk/admin/modules/common/lib/functions.php M /trunk/cms/includes/functions.php M /trunk/customers/includes/functions.php M /trunk/kb/includes/functions.php M /trunk/order/includes/functions.php 54. Pagination fixes for storefront packages. ------------------------------------------------------------------------ M /trunk/admin/modules/common/lib/functions.php M /trunk/admin/templates/modules/developer/lang_editor.php M /trunk/cms/includes/classes/pagination.php M /trunk/cms/includes/functions.php M /trunk/customers/includes/classes/pagination.php M /trunk/customers/includes/functions.php M /trunk/install/includes/functions.php M /trunk/kb/includes/classes/pagination.php M /trunk/kb/includes/functions.php M /trunk/order/includes/classes/pagination.php M /trunk/order/includes/functions.php 55. Fixed issue that caused manually added or modified PA upgrade packages to fail on import. ------------------------------------------------------------------------ M /trunk/admin/modules/import/templates/phpaudit_v2.php 56. Fixed pagination bug with due & paid invoice display. ------------------------------------------------------------------------ M /trunk/customers/compiler/my_invoices.php 57. Fixed bug that caused all package assets to go suspended for unpaid invoices! ------------------------------------------------------------------------ M /trunk/admin/modules/invoices/lib/classes/invoices.php M /trunk/admin/modules/packages/lib/classes/packages.php 58. Added query to enforce utf8 just after the database connection. ------------------------------------------------------------------------ M /trunk/admin/modules/common/lib/classes/modules.php 59. Fixed issue that prevented admin login for fresh installs. ------------------------------------------------------------------------ M /trunk/cms/includes/functions.php M /trunk/install/includes/functions.php 60. Fixed view cart bug causing price display issues for new customers with no customer session in place yet. ------------------------------------------------------------------------ M /trunk/admin/modules/order_forms/lib/classes/order_forms.php M /trunk/api/modules/order_forms/view_cart.php M /trunk/admin/templates/custom/default/header.php M /trunk/api/modules/order_forms/product.php 61. JS overflow errors. ------------------------------------------------------------------------ M /trunk/admin/templates/common/javascript/lightbox/lightbox.js M /trunk/admin/templates/custom/default/header.php M /trunk/admin/templates/modules/cms/page_edit.php 62. Fixed Fatal error: [] operator not supported for strings in customers/compiler/my_package_details.php on line 271 ------------------------------------------------------------------------ M /trunk/customers/compiler/my_package_details.php 63. Fixed bug at Settings -> Transport settings -> manage -> click on the general tab lost tab focus. ------------------------------------------------------------------------ M /trunk/admin/templates/modules/email/settings_edit.php 64. Added === to is_windows() to correct false positives. ------------------------------------------------------------------------ M /trunk/admin/modules/common/lib/functions.php 65. Fixed www vs. non www issue with Iono. ------------------------------------------------------------------------ M /trunk/admin/modules/license_methods/Iono/validate.php M /trunk/install/sql/spbas.sql ************************************************************************ * CSS, Template and Configuration File Changes (6) ************************************************************************ 1. api/configuration.php change this: // license 'get_local_key', 'license_expire_date', 'change_license_status', to this: // license 'get_local_key', 'license_expire_date', 'change_license_status', 'validate_via_js', ------------------------------------------------------------------------ 2. api/configuration.php add this to the very bottom of the file: $no_api_key_required=array( 'download_secure', 'download_attachment', 'validate_via_js' ); ------------------------------------------------------------------------ 3. Remove the stray tag on line 23 of customers/templates/default/my_packages.php. ------------------------------------------------------------------------ 4. In api/configuration.php change line 62 from this: 'get_local_key', to this: 'get_local_key', 'SPBAS_validate_license', // <-- this one is new ------------------------------------------------------------------------ 5. In order/templates/default/order_complete.php (should be the last line in this file) replace this: With this: ------------------------------------------------------------------------ 6. In api/configuration.php at the bottom, change this: $no_api_key_required=array( 'download_secure', 'download_attachment', 'validate_via_js' ); To this: $no_api_key_required=array( 'download', // <-- added v1.7 'download_secure', 'download_attachment', 'validate_via_js' );