Thelia v2.1.0-alpha2 Release Notes

    • ⚑️ Update Process :
      • update command has been removed and replaced by a php script and a web wizard. Read the UPDATE.md file
    • Templating :
      • Smarty is now a dedicated Module and no more present in the core of Thelia
      • All the template logic works now with abstracted class or interface, so it is possible to create a new Module for an other template engine
      • A new interface has been introduced, the ParserHelperInterface : its purpose is to parse a string and get all πŸ“œ parser's function and block with theirs arguments.
      • A new service has been introduced : thelia.parser.helper and it must be the implementation of ParserHelperInterface
      • If you want to create a new Template module, you must declare those services :
        • thelia.parser : the class that implements ParserInterface
        • thelia.parser.helper : the class that implements ParserHelperInterface
        • thelia.parser.asset.resolver : the class that implements AssetResolverInterface
    • Routing :
      • new notation a:b:c => Foo:Bar:Baz will execute Foo\Controller\BarController::BazAction method
    • Module :
      • New schema for modules
      • Module installation from back office
      • Dependency check to Thelia version and other modules during installation, activation, deactivation and deletion
    • Smarty :
      • new plugin flash to support symfony flash message.
      • new plugin default_locale. This function is used for forcing the usage of a specific locale in all your template. Useful for email and pdf. eg : {default_locale locale="en_US"}
      • function intl has a new argument : locale. If used, this locale will be used instead of session's locale
    • Loop :
      • new method addOutputFields in order to add custom fields in an overridden loop
    • βœ… Tests:
      • Move tests from core/lib/Thelia/Tests to tests/phpunit/Thelia/Tests
      • Update PHPUnit from 4.1.3 to 4.1.6
    • Symfony components:
      • Update from 2.3.* to 2.3.21
    • REST API:
      • Implement the first version of the REST API. You can find the documentation here
    • Forms: New implementation of Symfony form component that now handles form types, form extensions and form type extensions
      • You can use the tags thelia.form.type, thelia.form.extension and thelia.form.type_extension to declare yours
      • Implementation of many form types for thelia, see the namespace Thelia\Core\Form\Type

    πŸ—„ DEPRECATED

    • πŸ—„ \Thelia\Core\HttpFoundation\Session\Session::getCart is deprecated. Use getSessionCart instead.
    • πŸ—„ \Thelia\Cart\CartTrait trait is deprecated. Use \Thelia\Core\HttpFoundation\Session\Session::getSessionCart for retrieving a valid cart.

    2.1.0-alpha1

    • βž• Added sale management feature
    • βž• Added module_id parameter to Area loop
    • βž• Added "Shipping configuration" button to the delivery module list, with a warning if no shipping zone is assigned to the module.
    • Added the show_label parameter to the render_form_field Smarty function.
    • Added the exclude parameter to form_hidden_field function.
    • βž• Added the product parameter to the attribute_availability loop.
    • βž• Added the sale parameter to the product loop.
    • βž• Added visible argument to image/document classes
    • Added new, promo and default parameters to product_sale_elements loop
    • Added store_notification_emails, which contains the recipients of shop notification (such as order placed)
    • βž• Added admin notification e-mail for order placed
    • πŸ‘Œ Improved other emails (specially text versions)
    • Added ORDER_SEND_NOTIFICATION_EMAIL event
    • 🚚 class-loader component is removed, it was not used anymore.
    • ⚑️ Updating stock when changing order : canceled status
    • βž• Added virtual products feature.
      • Added new delivery module for virtual products.
    • βž• Added meta data feature to associate core elements and various data.
    • Added allow_negative_stock configuration variable to allow negative stock or not (default is no)
    • βž• Added the ModuleConfig table, to provide modules an easy way to store their configuration parameters, with I18n if required.
    • βž• Added the module-config loop
    • βž• Added getConfigValue() and setConfigValue() static helper methods to BaseModule to offer an easy way to get/set a module parameters
    • πŸ”¨ Refactored the Cheque module, to use the new ModuleConfig, and send an email to the customer when its payment is received.
    • βž• Added the wysywig.js hook to official hooks, so that any page which needs a WYSYWIG editor will only have to put this hook in the JS section to get one.
    • πŸ”¨ Refactored Tynimce module according to wysywig.js hook
    • Moved cart and order flush in the Order action, triggered by the ORDER_CART_CLEAR event. Payment modules which redirects to a non-strandard route (e.g., not /order/placed/{order_id}) should fire this event.
    • πŸ”¨ Refactored assets generation.
    • πŸ’… file parameter of asset related smarty functions (stylesheets, javascripts, Γ¬mages`, ...) should not contains ../
    • βž• Added remember me feature for customer sign in process

    πŸ—„ ##DEPRECATED

    πŸ—„ Redirect methods are deprecated. You have now two ways for generating a redirect response :

    • πŸ‘» Throwing a Thelia\Core\HttpKernel\Exception\RedirectException with a given URL
    • If you are in a controller, return an instance of \Symfony\Component\HttpFoundation\RedirectResponse
    • Never ever send a response. Only the HttpKernel class is allowed to do that.

    πŸ—„ Deprecated methods :

    • Thelia\Controller\BaseController::redirect
    • Thelia\Controller\BaseController::redirectSuccess
    • Thelia\Controller\BaseController::redirectToRoute