Release Date: May 2016
- Customers model: new method
saveAddress()
to update/save/delete customer addresses - URL Helper: new method
assets_url()
to return full URL (including segments) of the assets directory - Location admin option to choose different delivery and collection hours or use same as opening hours, and option to choose future days in advance
- Migration: added column
type
toworking_hours
table and updatetype
column value toopening
on existing rows - Locations can now have opening, delivery and collection hours past midnight
- Location library methods
hasFutureOrders()
to check if location future order option is enabled or disabled in admin settings - Location library methods
futureOrderDays()
to get the future days in advance location option value - Location library methods
checkOrderType()
to check if delivery or collection order type is available open, and accepting orders - Location library methods
checkOrderTime()
to check if order time is within delivery or collection open and close hour - Improve
local_module
andcart_module
to display and check opening, delivery and collection hours and status - Affix categories sidebar (module) to page
- Migration: added column
order_date
toorders
table to allow future orders - Customer now redirects back to previous page after login when previous page is either checkout or reservation page
- Composer support, to enabled create a file
vendor/autoload.php
within the system folder and - Location library method
deliveryCondition()
to return an array of the current location delivery conditions to be used within controller - Capability to create a child theme and override any parent theme file or extension view file from within the child theme
- TI_url_helper theme_url() function to return the site theme URL
- Total cash payments to admin dashboard statistics and payment column to admin order list view
- New Stripe payment method to accept credit card payments through Stripe
- Mealtimes (breakfast, lunch, dinner, ...) to set what time of the day a menu item can be ordered by the customer
- Migration: add column
priority
to Menus table and columndefault_value_id
to Menu Option table to sort the storefront menu list and choose an option value to be selected default in storefront - Migration: new table
mealtimes
to holdstart_time
andend_time
for mealtimes - Improved Cart: new extension type
cart_total
to allow cart totals extension and priority from within cart module - Event Hook: developers can add new cart total using
cart_module_before_cart_totals
hook point and - Cart library methods
add_total()
,remove_total()
andget_total()
- Extensions_model method
getModule($module)
to return specified installed module - Theme config item under partial_area
module_html
to customise each module html template displayed in storefront - Extension config item
layout_ready
to tell system an extension can be configured as layout module and displayed in storefront
- Major UI improvements to local, cart and categories modules, local, locations and checkout pages
- Location library: MUST call
initialize()
method orsetLocation()
to load location library - Improved
orderTimeRange()
method in Location Library to get future order dates and hours - Removed
local_module
admin edit language text feature. Language text should be changed from language file instead. - Location library methods
getOpeningType()
,openingStatus()
,openingHours()
,checkDeliveryTime()
togetWorkingType()
,workingStatus()
,workingHours()
,checkOrderTime()
- Improved Checkout future order (order for later) feature with option to select date and time for later delivery or collection
- Improved Admin Location settings whether customer must enter address to order or not
- Improved Cart Module alerts to display top screen on mobile devices
- Show order date instead of date added on admin & customer account order and checkout pages and display menu option on new line
- Improved get_remote_data method
- Pass entire module array into extension module index method instead of passing only the data array key value
- Improved banner module with admin options to allow multiple banners on different layouts
- Added option to enter billing address during checkout when authorize.net is selected as payment method
- Load Template library right after permalink library so the right modules can be loaded based on uri
- Improved messages view folders and delete functionality ( you might find some archived messages showing under 'all' folder but not in 'archive', fix by moving to archive again)
- Filter lost (blank status) orders from order list in admin by default
- Updated CI core files to version 3.0.6, TI system files and modular HMVC files
- Improved locations delivery area with conditions such as free delivery if total over certain amount
- Location library method
deliveryCharge()
andminimumOrder()
now expect cart total as parameter - Customer login function to login admin to any customer account without knowing the customer's password
- Replaced
_find_view()
with_find_view_path()
in Template Library, use_load_view()
instead of_find_view()
- Improved Template library to search for files
views, css, js
both in the active and parent themeif the active theme is a child theme
- Improved TI_Loader library
view()
method to search current (child and parent) theme folder for view file before modules, this allows extension view files to be overridden from within a child theme folder - Improved Cart: moved cart validate methods from controller to new
Cart_module_lib
library - Removed admin settings option Tax Title, so tax title can be set from within Cart Module
- Improved send message to all newsletter subscriber feature to include emails submitted via newsletter extension
- Improved Template Library to read new config item
layout_ready
and customise module based onmodule_html
value in theme_config - Improved Admin Layout edit page to drag and drop layout modules into partial areas, add title and position module to page
- Issue with payment and confirm button changing incorrectly on checkout page
- Issue with lost orders, this way a new order is not created after payment fails
- Issue with displaying form validation error for payment methods
- Issue where previous successfully placed order is overwritten when placing new order as guest
- Issue where class selector passed into get_partial method is ignored
- Issue with storefront menu list and sidebar modules widths
- Missing category module admin fixed position settings
- Default language from being deleted accidentally
- Issue where core modules are not displaying on fresh install
- Storefront multi-level categories list to have more than one level
- Issue with clearing images and removed required validation rule to make field optional
- Issue to allow duplicate permalink slug
Release Date: January 2016 (postponed: 15 March 2016)
- Setup now generates a random alpha-numeric 9 length string for database table prefixes
- Admin option to select a page for checkout and registration terms and condition.
- Missing extension meta title item and extension permission rules to config
- Version number to extension metadata and themes config for version control and automatic update feature
- Featured Menus module to display selected featured menu on homepage or anywhere on the storefront
- New admin setting option to set site date/time format
- Location image gallery: option to add multiple images to be displayed on local storefront
- New mail templates to send emails to admin on new customer registration and admin password reset
- Second parameter to both
subject()
andmessage()
method of Email library to parse data into mail template - New mail templates variables (site_logo, site_url, staff_name, staff_username, status_name, status_comment)
- Authorize.Net (AIM) Payment gateway
- Template Library function
getActiveThemeOptions()
to retrieve admin theme customizer options andget_theme_options()
helper function to use within theme files - Google analytics tracking code and social links theme options to tastyigniter-orange theme
- New mail templates to send emails to notify customer of order or reservation status update
- Dynamic menu navigation from nav_menu array in theme config, so that menu items can be easily managed
- Location Library
orderTimeRange()
function to retrieve location order time ranges - Customer Library
updateCart()
function to keep track of cart so customer can login to continue later - New admin setting option to enable or disable new customer review entry and display of existing reviews on storefront
- Invoicing: option to generate invoice number w/ prefix automatically or manually, view invoice from admin order page
- New admin setting option to set invoice prefix and auto or manual invoicing
- New admin setting option to set status to mark order as processing so system can start stock reduction and coupon redemption
- New admin setting option to display or hide stock warning messages
- New admin setting option to allow customers to still checkout if the menu they are ordering is not in stock
- Taxation: option to enable or disable calculating taxes based on set percentage and whether to apply on menu prices or as included with menu prices
- New option to add latitude and longitude manually or fetch automatically in Locations
- New mail template variable
{order_payment}
to display the payment method in order email sent to customer and admin - Custom error views: override default error views within custom theme by copying the errors folder into the themes/your-custom-theme/ folder
- Themes: option to add and delete theme in the admin backend plus template helper new method
delete_theme
- Local Module: option to enable or disable single or multi location search mode and selected location for single mode, where orders will be sent.
- Config helper to write configuration value like encryption key into config file
- System Events: hooks to allow you integrate your custom modifications into various points within TastyIgniter’s execution
- Categories: status field to enable or disable selected category in storefront
- Location library
setDeliveryArea()
andgetAreaId()
method to update location delivery area when customer delivery address changes - Extension library
latestMigration()
method to migrate module migrations to the current version - Added new parameter to time_elapsed to filter the time diff returned
- User library
isStrictLocation
method to check if staff's group has Strict Location enabled or disabled - Auto update functionality: updates core files (default controllers, languages, themes, and extensions). ** still in beta mode
Site.Updates
permission rule to control staff permission to Update system- Installer Library
getSysInfo()
function to retrieve current system info, such as ti version, php and mysql version - Installer Library
upgrade()
function to install database migration and update core version after updating core files - Added TastyIgniter news feed to admin dashboard, also added Feed_parser library to read and parse the RSS feed XML
- Added missing
getStaffEmail()
to retrieve currently logged staff email - New mail template variable
{order_comment}
,{reservation_comment}
and{telephone}
to display the order comment and customer telephone in emails
- LICENCE from Apache to GNU GPLv3
- Replaced file_get_contents with cURL to fix issue with google maps geocoding api request not being sent
- Renamed
loadPartial()
in Template Library toloadView()
to load single views without header, footer and partials - Renamed
addToStaffGroup()
in Permissions Model toassignPermissionRule()
and moved into Staff groups Model - Checkout and registration terms and condition pages to display in modal instead of new window
- Media Manager view and style adjustment
- Moved
getPayPalDetails()
method from deprecated Payments model into PayPalExpress extension Paypal model - Pages: Removed page name redundancy so that only page title and heading are required when creating a new page
- Changed
updateExtension()
parameters in Extensions model to (type, name, data) - Removed deprecated
setBackButton()
andgetBackButton()
in Template library, usesetButton()
andgetButton()
instead. - Hard code return and cancel URI in paypal_express module
- Send HTML emails only, remove admin settings option to set TEXT as mail type format
- Improved
resize()
in image tool model so that original image is returned when width and height is not given - Replaced existing mail templates into responsive HTML mail templates
- Replaced tinymce editor with summernote editor to reduce total source size
- Replaced fancybox with bootstrap modal to reduce total source size
- Restructured controllers so that post data are validated and sent to model at the beginning not end to optimize page load time
- Replaced
completed_order_status
admin setting input field to multiple select field - Improved language files
- Re-arranged admin nav menu items and improved Template Library
buildNavMenu()
to show third level nav menu - Improved Themes from listing admin themes on admin panel, this will allow focus only on storefront theme development
- Improved style and script tags so clearing browser cache is not required after upgrade, by appending query string to the URL
- Security: create encryption key and add to config file during setup and upgrade
- Update Page-level DocBlock in system files
- Improved database migration such that initial data schema can be inserted while migration is running instead of after. This fixes issue where mail templates data is not updated
- Improved system setup: added one additional step to system setup to confirm license agreement.
- Postcode no longer a required field for non-UK
- Database Maintenance: now saves database backup files into
tastyigniter/migrations/backups
instead ofassets/downloads/
as added security - Moved
load_db_config()
method fromTI_Config
toTI_Loader
, so that database config items are loaded earlier in the system - Renamed admin, main and setup language file
english/english_lang.php
toenglish/default_lang.php
to allow seamless translation - Removed timezone and language settings from staff edit in admin panel
- CORE: use DIR_WRITE_MODE when creating directories.
- Improved add extension functionality: strict upload validation with feedback, renamed methods
Extensions_model::upload()
toExtensions_model::extractExtension()
andExtensions::uploadExtension
toExtensions::addExtension
- Improved storefront theme responsiveness on all devices
- Theme Customizer: added more options to easily customize the storefront
- Improved Migration capability to check and install module migrations
- Removed acceptance testing test cases to be improved and replaced with Unit testing
- Improved currency: added left or right symbol placement, thousand & decimal sign and removed iso codes
- Cookie helper now using php native function to delete cookie
- Improved [local_module] strict location order and pre-order functions.
- Replaced system setting default address entry fields with locations dropdown list so that location details can be modified from one interface
- Disable admin from migrating database when system is in production environment
- Improved coupons redemption capability so that coupon is marked as redeemed after order status is updated to the selected processing order statuses
- Improved staff group strict location option and removed
setLocationAccess
method from User library - Previous guest order now linked a to a newly created customer based on the customer email
- Bug where extra URL query is not appended after permalink slugs in URI reverse routing
- Bug where empty value is not updated in database by using
isset()
instead of!empty()
in models INSERT/UPDATE - Issue where duplicate head tags are added to
<head>
of Media manager - Bug with undefined method
writeTheme()
in Themes that was replaced in previous version to helper functionsave_theme_file()
- Missing extensions admin language line
- Spelling error in admin setting option
complete_order_status
tocompleted_order_status
andnew_order_status
todefault_order_status
andnew_reservation_status
todefault_reservation_status
- Issue where payment method is not disabled when order total is below the payments minimum order total
- Issue where payment method is not displayed in admin and storefront order view
- Issue where duplicate order is added upon page redirect, also remove received order from user session
- Orders model from not displaying incomplete/lost orders in customer account
- Minor bugs fix
- Issue where site is not translated to default language
- Issue where view data variable collides with theme options variable in the main app.
- Issue with permission rule not being applied when updating individual modules
- Issue with day_elapsed() helper method where it only checks the day instead of checking day and month to determine today or yesterday
- Issue with delivery charge not based on delivery address (#107)
- Issue where cart rounds thousands to the nearest unit
- Issue with special menu status
- Issue with slide-show height in storefront
- Issue where child category menu items is not displaying
Release Date: 16 September 2015
- [fixed] staff name in staff updated activity log (67e3fa6)
- [added] TI_DEBUG constant to enable / disable profiler, disabled by default (3a20c4e)
- [fixed] display no_photo.png when resizing an image that doesnt exist (da3d3a8)
- Minor theme fix (4c1ce6b & 01b4535)
- [replaced] theme preview and thumb files with screenshot.png (bb3cfa4)
- [added] Installer library to handle TI initial setup and version updates (c5a5175)
- [replaced] INSERT SQL to REPLACE SQL in initial_schema and demo_schema (d0aa31c)
Release Date: 09 September 2015
- Added support for acceptance testing
- Fixed php version backward-compatibility issues of empty()
- Changed google maps api request from http to https for location search
- Fixed adding comment to menu item added to cart
- Fixed issue with escaping htmlspecialchars when saving lanugaue line to database
- Fixed issue with saving state in customer and location addresses
- Added order restriction option to coupons. Coupon is restricted by order types
- Improved template library, and loading theme config file
- Improved extension update, install, uninstall, and loading extension config file.
- Added newsletter module to collect emails for marketing purposes
Release Date: 18 May 2015
ADDED:
-
Session library now using 'CI' files session
-
root_url, page_url, admin_url, extension_url method to return site root url
-
Themes customization:
- New method to template library to load theme configuration file
- theme_config.php configuration file is now required in theme root directory to install/customize themes.
- 'customize' key required in $theme configuration array, in other to enable/load customization.
- Section array items
('title', 'desc', 'icon', 'fields')
- fields array items
('id', 'type') ('type' => 'hidden|text|password|textarea|group|color|media|checkbox|radio|dropdown|upload')
- admin_theme_helper methods moved to Customizer class
-
Menu Category hierarchy: with parent and as many child levels
-
New column 'status' added to extensions table, to indicate whether extension is installed/uninstalled and to keep extension data in database after uninstallation.
-
Cart Module: option to show or hide menu images and set sizes
-
Migrations schemas:
- create trigger (duplicatePermalink) to avoid duplicate permalink value in permalinks table
-
Permalinks:
- added controller attribute to improve routing
-
Activities System: New database table schema for activities
-
Added order and reservation status color
-
Admin domain base controller property _permission_rules added can be overridden by admin domain controllers to set permission rules for the controller
-
Extension:
- New modules can be uploaded from backend
- Modules and it files can be deleted after its been uninstalled
- Extensions controllers now loads a mandatory config file on initialization in module_name/config/module_name.php
CHANGES:
- All controller methods visibility are accurately set
- Admin, Main and Setup now separated into apps and shares same system components
- CI_Controller now has subclass Base_Controller
- Base_Controller has subclasses Admin_Controller and Main_Controller
- Both main and admin domain controllers now extends Admin_Controller and Main_Controller respectively instead of CI_Controller
- Application controllers now organized in folder, (this affects URI routing)
- Move encryption_key config item from database to config file.
- Move log_path config item from database to config file.
- modules_locations config item now set from index.php instead of config file
- Settings library now sets config items from database only if settings database table exists
- Base controller now checks if session database table exists before using database with session
- Add option to disable security question for customer
- Migration schemas:
- table indexes now added in $fields array instead of the
dbforge->add_key
function
- table indexes now added in $fields array instead of the
- Flash alerts and info now uses
$this->alert->success/danger/error
to add alert message and$this->alert->display
to display - Renamed assets/download to assets/downloads (notice the downloads)
- Improved informative database backup with number of rows and displayed
- Renamed template library method
regions()
tosetPartials()
- Rename template library
setLinkTag()
tosetStyleTag()
- Default admin_theme and main_theme config items now grouped into default_themes array
- Extensions root folder moved to root folder
- Extensions sub-folders structure re-arranged:
- controllers/admin and controllers/main merged into controllers/
- languages/admin and languages/main merged into languages/
- views/admin and views/main merged into views/
- Extension class methods moved to Extension_model class and Extension class acts as a Facade
- Renamed permalink to USER-friendly slug also column in permalinks table
- Reviews can now be added on reservations and orders. column order_id changed to sale_id and new column sale_type added to differentiate order reviews from reservations reviews.
- Status History:
- changed status_history database table column from assigned_id to assignee_id
- changed reservations database table column from staff_id to assignee_id
- added assignee_id column to orders database table
- Changed Activity library to Customer_online Library
- Customers Online:
- settings item activity timeout changed to customers_online_timeout
- settings item activity archive changed to customers_online_archive_timeout
- IP blacklist removed, to be added back in next version
- Added referrer_url to ti_url_helper, which will return the user referral url.
- Changed
config('maintenance_page')
toconfig('maintenance_message')
and useshow_error()
instead of loading controller. - Improved banners and banners_module.... move dimension from banners and banners_module.
- Extracted categories, menu_options associated methods into separate models from menus_model
- Extracted banners associated methods into separate models from design_model and rename to layout_model
- Improved user permission functionality, permission can be set as rules within controllers.
- Removed duplicate admin domain controllers methods and models methods
- Improved site_url and
redirect()
uri re-routing - Improved image manager styles responsiveness and remove irrelevant options
- Fixed models delete methods to accept array of ids
- Changed customer activity to customer_online
- Messages:
- renamed messages controller method edit to compose
- added messages controller methods all, draft, sent,
- removed message type trash
- Schema:
- drop location_id, staff_id_to columns in messages table
- drop staff_id, staff_email, customer_email, customer_id columns in message_recipients table
- rename column staff_id_from to sender_id in messages table
- added columns key and value to message_recipients table
- Improved user permissions
- added permission database table and Permissions_model
- added
restrict()
method to check user permission then redirect and show message to user if permission fails - improved
hasPermission()
method to check user permission and return TRUE on permitted or FALSE on restricted
- Permissions are a simple string made up of 3 parts:
- Domain - Typically the module name for application (e.g. Admin, Main, Module).
- Context - The controller name (e.g. Menu, Order, Location, or Settings).
- Action - The permitted action (View, Manage, Add, Edit, Delete, etc.).
- Removed Setting Library, no longer used. (functionality moved to Base_Controller)
- Removed permission context (controller and view files), no longer needed. (Permission error message displayed using alerts)
- Add tastyigniter_helper to include
log_activity()
and other general helpers - Activities:
- Rename Notifications_model to Activities_model
- add notifications from inside controllers instead of models
- rename to
Activities_model->addNotification
to logActivity - create log_activity helper function to add activities to database and to be called from controllers
- logActivity method accepts 4 args user_id, action, context and message
- rename notifications database table to activities
- rename actor_id to user_id and object to context
- drop unused columns from notifications table: suffix, object_id, subject_id
- add columns user, message, domain, context to activities table
- Database Migration from admin domain
- Migrate database to latest version
- Restore database from downloaded backup sql files and disabled uploading sql files
- Replaced reserve controller, language, view to reservation
- Location:
- Added location image/logo
- changed property reservation_interval, reservation_turn to reservation_time_interval and reservation_stay_time respectively
- Move local search functionality from cart_module to local_module
- removed location settings search by no needed getLatLng does not check search_by settings anymore
- Languages:
- ensure main domain is completely internationalized
- internationalized admin domain
- ensure common and duplicate lang lines are moved to english_lang.php
- prefix all language line keys with text_ label_ column_ error_ alert_ button_
- added new language helper functions
- added can_delete functionality to language edit
- Themes: move some themes_model functions to template_helper