Initial Commit
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/web/cache/
|
||||
/cache/
|
||||
/core/
|
||||
/log/
|
||||
951
CHANGELOG.md
Normal file
@@ -0,0 +1,951 @@
|
||||
# 2.3.1
|
||||
|
||||
- (related to #2150) Fix form and validator translations
|
||||
- (related to #2147) Fixed help text display if show_label is false
|
||||
- (related to #2145) Fix for taxes & tax rules description display in Taxes rules page
|
||||
- (related to #2144) Fix automatic configuration for the sql_mode
|
||||
- (related to #2142) Force utf8 on thelia update
|
||||
- (related to #2139) Start page correction for the loops
|
||||
- (related to #2135) Fix ressources check for translation view
|
||||
- (related to #2132) Fix change default category and default folder. Since the pull request #2066, it's no longer possible to change the default category of a product or the default folder of a content.
|
||||
- (related to #2129) Fix order export date interval
|
||||
- (related to #2128) Fix address state check in delivery cost estimation and fix login error due to symfony update
|
||||
- (related to #2127) Fix 2.3.0 major BC break in Thelia\Core\Event\Order\OrderPaymentEvent
|
||||
- (related to #2125) Fix construct in GenerateRewrittenUrlEvent
|
||||
|
||||
# 2.3.0
|
||||
|
||||
- #2121 Fix possible Compile Error in delivery loop
|
||||
- #2117 Fix Admin update, the password is no longer required for update of an admin
|
||||
- #2118 Module TinyMCE, fix the path for the Java uploader
|
||||
- #2120 Fix {count} in search context, {count} doesn't work when searching (since 2.3.0 alpha-1)
|
||||
- #2116 Updated translations from Crowdin
|
||||
- #2110 Added a way to set specific date/time format for lang, fixed date/time format for fr_FR
|
||||
|
||||
# 2.3.0-beta2
|
||||
|
||||
- #2030 Fix ziparchive not found, add a message to prevent that the zip extension was not found on the server
|
||||
- #2104 Fixed update function issue in Colissimo module
|
||||
- #2096 #2103 Fix currency change, an exception was thrown if the currency does not exist
|
||||
- #2097 Fixed and improved cancel order processing
|
||||
- #2095 Updated translations from Crowdin
|
||||
- #2092 Fix Module TheliaSmarty, replace the request service by requestStack service
|
||||
- #2091 Fixed NO_ENGINE_SUBSTITUTION setting for MariaDB
|
||||
- #2090 Fix GenerateRewrittenUrlEvent, add getters and setters
|
||||
- #2084 Check if customer exist in coupon builder
|
||||
|
||||
# 2.3.0-beta1
|
||||
|
||||
- #2062 Remove composer dependency leafo/lessphp
|
||||
- #2060 Fix BC, TaxRule action introduces a compatibility break
|
||||
- #2080 Fix missing function `addoutputfields` in the loops
|
||||
- #2078 Fixed checkbox and radio automatic rendrering. The "checked" status of checkboxes and radios was not correctly managed by form-field-attributes-renderer.html
|
||||
- #2079 BackOffice : UX improvements on tablets, the right menu was too broad
|
||||
- #2067 Fix esi render. The sub-request was not a Thelia request
|
||||
- #2066 Fix the problem of position if a product or content in several sections and folders
|
||||
- #2073 Use template default fallback in View Listener. Module views was not properly processed when the active front template is not "default"
|
||||
- #2068 Fix customer edit view ACL, replace `update` by `view` for edit a customer
|
||||
- #2063 Fix, when deleting a product with a free text feature value, the free text feature value was not removed
|
||||
- #2058 Fix bug when sending the attribute combination builder form if the user had not selected attribute
|
||||
- #2056 Fix UX bug on product list in the frontOffice, the grid icon or the list icon do not lock
|
||||
- #2040 Fix bug when change image position on the module config page. The trait `PositionManagementTrait` was missing in `ModuleImage`
|
||||
- #2054 Fix the update process for the Collissimo module
|
||||
|
||||
# 2.3.0-alpha2
|
||||
|
||||
- #1985 Add delivery and payment events `MODULE_PAYMENT_IS_VALID`, `MODULE_PAYMENT_MANAGE_STOCK`, `MODULE_DELIVERY_GET_POSTAGE`
|
||||
- #2045 Moves the backOffice statistics in the new module HookAdminHome
|
||||
- #2044 Add possibility to change number by default of results per page for the product list, the order list and the customer list in the backOffice
|
||||
- #2042 Avoid having too many results in the backOffice search page
|
||||
- #2021 Fixes hooks `mini-cart`, `sale.top`, `sale.bottom`, `sale.main-top`, `sale.main-bottom`, `sale.content-top`, `sale.content-bottom`, `sale.stylesheet`, `sale.after-javascript-include`, `sale.javascript-initialization`, `account-order.invoice-address-bottom`, `account-order.delivery-address-bottom`
|
||||
- #2041 Fix possible circular reference for category tree and folder tree
|
||||
- #2039 Disable the output of the url by the loops on the BackOffice
|
||||
- #2034 Add column position in attribute combination table
|
||||
- #2028 Fixed translation regexp prefix for templates
|
||||
- #2027 Confirmation email when subscribing to newsletter, and subscription cancel page
|
||||
- #2017 Add constraint of unicity in create and update hook form
|
||||
- #2012 Checking MySQL version to set sql_mode automatically, this fixed the compatibility with MySQL > 5.6 for modes `STRICT_TRANS_TABLES`, `NO_ENGINE_SUBSTITUTION`
|
||||
- #2009 Display PSE ref in backOffice order edit for the product list
|
||||
- #2001 Check PHP version before trying to do anything in install process
|
||||
- #1999 Fix Folder breadcrumb, the parent url was not good if you edit a picture in a folder or a content
|
||||
- #1998 Add not blank constraint on zipcode in address create form
|
||||
- #1988 Fix hide module-install if auth are not right in the BackOffice
|
||||
- #1907 Administrators should now have an email address. They may use login name or email to log in the back-office. They could now create a new a password if they forgot it. New minimum_admin_password_length and enable_lost_admin_password_recovery configuration variable.
|
||||
- #1962 Fix exception when cloning a product if the i18n in specific locale does not exist
|
||||
- #1933 #2006 #2016 #2033 Upgrade Symfony 2.3 to Symfony 2.8
|
||||
- #1995 Added order search options, improved search page in the backOffice
|
||||
- #1994 Allow coupon in first cart step
|
||||
- #1993 Fix the default language isocode link in backOffice languages page
|
||||
- #1992 Add method to find category path `Thelia/Model/CategoryQuery::getPathToCategory`
|
||||
- #1977 Fixed translation domain in NewsletterController
|
||||
- #1980 Update database schema to increase module version field to 25 chars.
|
||||
- #1971 #1973 Adds an address email to the administrator profile and adds the password lost functionality for administrators
|
||||
- #1970 Add `CartDuplicationEvent` which provide both original and duplicated cart to listeners
|
||||
- #1967 Module Colissimo : Replace country title by isoalpha2 in export for expeditor
|
||||
- #1964 Fixed cart not deleted after an order placed
|
||||
- #1960 Add events `CART_ITEM_CREATE_BEFORE` and `CART_ITEM_UPDATE_BEFORE`
|
||||
- #1959 Add the ability to format an address by country
|
||||
- #1907 Administrator email management and features
|
||||
- adds an address email to the administrator profile
|
||||
- This address email can now be used to login just like the login name
|
||||
- An administrator could now recover a lost password, just like a regular customer
|
||||
- #1958 Fix missing success_url on Brand SEO update
|
||||
- #1956 Fix UX right class in brand products pagination in the frontOffice
|
||||
- #1948 Allow to define custom delimiter and enclosure char for CSV serializer
|
||||
- #1947 Added a way to get category/product from related content ID
|
||||
- #1946 Fix l'inclusion automatique of the TaxType class only if extension == php
|
||||
- #1939 Add `visible` and `visible_reverse` values in Product Loop order argument
|
||||
- #1936 Fixed the module name vefication for command `module:position`
|
||||
- #1931 Add a optional parameters CC and BCC in method `\Thelia\Mailer\MailerFactory::sendEmailMessage`
|
||||
- #1929 Mod: BaseController useFallbackTemplate set to true by default
|
||||
- #1928 Hook DI alert messages thrown as exceptions in dev. mode
|
||||
- #1926 Fix redirection after coupon consume
|
||||
- #1923 Re enabled functional tests for back office
|
||||
- #1922 Colissimo Move the prices from a json to a config
|
||||
- #1921 Modules 'configuration' and 'hook' buttons behavior fix
|
||||
- #1920 Fixed coupons conditions label translation
|
||||
- #1917 Fixed translations bug in user mode with view only missing translations activated
|
||||
- #1916 Fix upload document. The document title is missing after upload
|
||||
- #1914 The module list in the translation page is now ordered by module code instead of module title
|
||||
- #1913 Conservation the emails after unsubscribe on newsletter
|
||||
- #1911 Add 'admin_current_location' arg for 'main.in-top-menu-items' Hook
|
||||
- #1908 A fix for "terms & conditions" bootbox height
|
||||
- #1906 Fix coupon create form data
|
||||
- #1904 Update tinyMCE
|
||||
- #1903 Added missing generateErrorRedirect()
|
||||
- #1895 Add a link to the contact page in the front footer and update bootstrap
|
||||
- #1881 Display only the zones affected to Colissimo in the backOffice
|
||||
- #1853 Coupon, add condition match for cart item include quantity
|
||||
- #1815 #1963 #1984 #1989 #1997 #2013 #2019 Import/export complete rework
|
||||
|
||||
# 2.3.0-alpha1
|
||||
|
||||
- #1907 Administrators should now have an email address. They may use login name or email to log in the back-office. They could now create a new a password if they forgot it. New ```minimum_admin_password_length``` and ```enable_lost_admin_password_recovery``` configuration variable.
|
||||
- #1902 Update Colissimo export, add link to order and to customer, add package weight
|
||||
- #1801 Fixed cart duplication conditions at user login/logout
|
||||
- #1892 Add a name verification when creating a module with a command
|
||||
- #1891 Add primary key in ```coupon_customer_count``` and ```ignored_module_hook``` tables.
|
||||
- #1701 This PR improves the Order::createOrder() so that the method could be used to duplicate an order by re-using the delivery and invoice addresses defined in the original order.
|
||||
- #1823 Add states/provinces concept. The objective of this PR is to separate states/provinces of countries. For now, the concept of states/provinces was managed in country model which was not the best way.
|
||||
- #1878 Add module code in the lists of the BackOffice for a better understanding.
|
||||
- #1832 Language improvement. Add the possibility to disable a language. It's possible to disable the language only for the front.
|
||||
- #1851 Add in the module Tinymce, the possibility to choose in which text areas the editor will be used.
|
||||
- #1840 Add the possibility to generate an url with the arguments ```router``` and ```route_id``` in the smarty function ```url```. Documentation ```http://doc.thelia.net/en/documentation/templates/urls-and-paths.html```
|
||||
- #1872 Add next/prev buttons for orders and customers. Modify the loops of brands, categories, folders and contents so that the queries to get the next and previous objects are sent only when it is needed.
|
||||
- #1850 #1859 Add hooks for email template
|
||||
- #1845 Add price including taxes in the combination creation pop-up in the BackOffice
|
||||
- #1868 Allow to open order-edit.html template with a specific module tab
|
||||
- #1861 Add links to the appropriate pages
|
||||
- #1860 Change version of Symfony Yaml components
|
||||
- #1843 Fix smarty form_collection_field, a performance problem was introduced after this PR: #1613 because the Form::createView() method create all form view on each call.
|
||||
- #1856 Convert order.invoice_date to datetime column
|
||||
- #1852 Add the possibility to disable the generation of url for the loops, adds argument ```return_url``` in loops, the default value for argument ```return_url``` is ```true```
|
||||
- #1857 Fix of hookblack : order.tab
|
||||
- #1792 Update module Carousel, change the location of saving of the images
|
||||
- #1844 #1848 Added hooks in the right column part of the edtion form of brand, content, category folder and product templates :
|
||||
- ```brand.modification.form-right.top```, ```brand.modification.form-right.bottom```
|
||||
- ```category.modification.form-right.top```, ```category.modification.form-right.bottom```
|
||||
- ```content.modification.form-right.top```, ```content.modification.form-right.bottom```
|
||||
- ```folder.modification.form-right.top```, ```folder.modification.form-right.bottom```
|
||||
- ```product.modification.form-right.top```, ```product.modification.form-right.bottom```
|
||||
- #1835 Add the product combination in PDF delivery
|
||||
- #1788 Remove all the AdminIncludes from the core modules.
|
||||
- #1841 Add the possibility to create a product combination with several same attribute inside (2 colors in one product sales elements).
|
||||
- #1830 Fix attribute title in the modal "create a new combination"
|
||||
- #1780 Currency improvements. Add the possibility to disable a currency. Add the possibility to change the position of the currency symbol. Resolve #1446
|
||||
- #1825 Add message if thelia project is not installed
|
||||
- #1714 #1839 #1833 Hook improvements
|
||||
- Add new syntax to hook on a hook. Documentation ```http://doc.thelia.net/en/documentation/modules/hooks/index.html```
|
||||
- Add command ```php Thelia hook```
|
||||
- #1824 #1829 Fix the admin home stats, On page load, the month sent to Thelia was bad
|
||||
- #1821 Fix the value for constant ```AdminForm::LANG_DEFAULT_BEHAVIOR```, Resolve ##1820
|
||||
- #1818 Fix BackOffice menu, hook block to integrate main link if it's used
|
||||
- #1816 Fix the total price of cart if the items have a quantity greater than one, Resolve #1772, add new methods ```getTotalRealTaxedPrice```, ```getTotalTaxedPrice```, ```getTotalTaxedPromoPrice``` in the model ```Thelia\Model\CartItem```
|
||||
- #1783 Fix product price exports. Resolve #1078 #1610
|
||||
- #1808 Add customer's company in order mails and PDF
|
||||
- #1780 Adds the ability to disable a currency and change the position of the currency symbol
|
||||
- #1806 Fix the event dispatched before decoding of the import, ```TheliaEvents::IMPORT_AFTER_DECODE``` to ```TheliaEvents::IMPORT_BEFORE_DECODE```
|
||||
- #1799 Fixed the redirection to rewritten URL
|
||||
- #1725 Added new attributes and some aliases to the {cart} substitution
|
||||
- A new `weight` attribute is added, to get the cart total weight.
|
||||
- A new `total_price_without_discount` attribute is added, to get the cart total amount without taxes, excluding discount.
|
||||
- The following aliases of existing attributes are added, to provide a better english syntax, or a more accurate name :
|
||||
- `product_count`, alias of `count_product`
|
||||
- `item_count`, alias of `count_item`
|
||||
- `total_price_with_discount` alias of `total_price`
|
||||
- `total_taxed_price_with_discount` alias of `total_taxed_price`
|
||||
- `contains_virtual_product` alias of `is_virtual`
|
||||
- `total_tax_amount` alias of `total_vat`
|
||||
- #1802 After upload, The image file name is no longer the default image title
|
||||
- #1805 Add a new parameter ```locale``` for the module_config smarty plugin
|
||||
- #1796 Fix regression in OrderAddressEvent cell phone can not be required in the constructor
|
||||
- #1787 Add loop Overriding, Documentation ```http://doc.thelia.net/en/documentation/loop/extend.html```
|
||||
- #1785 Fix undesirable carts, persist only non empty carts
|
||||
- #1790 Update the default PSE ref when the product ref is updated
|
||||
- #1778 #1797 Add ```manual``` and ```manuel_reverse``` order in attributeCombination loop
|
||||
- #1766 Add order by ```id``` and ```id_reverse``` in product_sale_element loop
|
||||
- #1760 Set order status as paid when the FreeOrder module is used to "pay" an order
|
||||
- #1751 Fix for undefined currency exchange rate, add error message in the currency configuration page when an exchange rate could not be found
|
||||
- #1769 Increase API key size to 48
|
||||
- #1771 Add argument ```customer_id``` for hook customer.edit-js
|
||||
- #1753 Fix the rounding of prices in the order product loop
|
||||
- #1768 Update composer.lock file, update of the dependency thelia/currency-converter to version 1.0.1
|
||||
- #1752 Add addValues method in EnumListType
|
||||
- #1746 Removes deprecated classes and methods for the version 2.3
|
||||
- #1745 Fix output value IS_DEFAULT in the product_sale_elements loop
|
||||
- #1754 Add homepage redirection on /admin/login if the admin is already authenticate. Before this change, there was a render
|
||||
- #1765 Fix for prev/next queries in Category and Content loops, and add prev/next in Product and Folder loop
|
||||
- #1759 Fix for parent attribute and new exclude_parent attribute of Category loop
|
||||
- #1750 Add EQUAL to product loop filter by min or max
|
||||
- #1727 Add template & stock inputs on product creation
|
||||
- #1722 Replaced parameter "locale" with "lang" in generated URL
|
||||
- #1732 Update sql constraint for table product_sale_elements_product_image and product_sale_elements_product_document
|
||||
- #1730 Change layout to only cache assets/dist
|
||||
- #1734 Fix critical performance issue on ProductController HydrateObjectForm
|
||||
- #1733 Fix order attribute in BaseHook
|
||||
- #1729 Fix all useless DIRECTORY_SEPARATOR
|
||||
- #1726 Fix method setRangeDate variable
|
||||
- #1718 Autocomplete combination generation form with default pse values
|
||||
- #1699 Fix missing use for BirthdayType
|
||||
- #1713 Add more options for content, folder and order in search results
|
||||
- #1706 Fix form coupon not found in frontOffice order invoice
|
||||
- #1700 Fix source priority in ```ParserContext::getForm```
|
||||
- #1588 Add document tab in frontOffice product page
|
||||
- #1668 Add height limit for the select fields in the Attributes and Features tab of the admin product edit page
|
||||
- #1669 Add options ```exclude_status, status_code, exclude_status_code``` and output value ```STATUS_CODE``` in Order loop
|
||||
- #1674 Add options ```free_text, exclude_free_text``` in FeatureValue loop
|
||||
- #1725 Add `weight` and `total_price_without_discount` attributes to the `{cart}` substitution, and some aliases to provide a better english syntax, or a more accurate name to existing attributes : `product_count`, alias of `count_product`, `item_count`, alias of `count_item`, `total_price_with_discount` alias of `total_price`, `total_taxed_price_with_discount` alias of `total_taxed_price`, `contains_virtual_product` alias of `is_virtual`, `total_tax_amount` alias of `total_vat`
|
||||
|
||||
# 2.2.3
|
||||
|
||||
- (related to #2147) Fixed help text display if show_label is false
|
||||
- (related to #2144) Fix automatic configuration for the sql_mode
|
||||
- (related to #2142) Force utf8 on thelia update
|
||||
- (related to #2139) Start page correction for the loops
|
||||
- (related to #2135) Fix ressources check for translation view
|
||||
- (related to #2125) Fix construct in GenerateRewrittenUrlEvent
|
||||
- (related to #2118) Module TinyMCE, fix the path for the Java uploader
|
||||
- (related to #2096) Fix currency change, an exception was thrown if the currency does not exist
|
||||
- (related to #2090) Fix GenerateRewrittenUrlEvent, add getters and setters
|
||||
- (related to #2084) Check if customer exist in coupon builder
|
||||
- (related to #2080) Fix missing function `addoutputfields` in the loops
|
||||
- (related to #2078) Fixed checkbox and radio automatic rendrering. The "checked" status of checkboxes and radios was not correctly managed by form-field-attributes-renderer.html
|
||||
- (related to #2068) Use template default fallback in View Listener. Module views was not properly processed when the active front template is not "default"
|
||||
- (related to #2068) Fix customer edit view ACL, replace `update` by `view` for edit a customer
|
||||
- (related to #2058) Fix bug when sending the attribute combination builder form if the user had not selected attribute
|
||||
- (related to #2052) Fix #2040 Missing trait PositionManagementTrait in ModuleImage
|
||||
- (related to #2041) Fix possible circular reference for category tree and folder tree
|
||||
- (related to #2017) Add constraint of unicity in create and update hook form
|
||||
- (related to #2012) Checking MySQL version to set sql_mode automatically, this fixed the compatibility with MySQL > 5.6 for modes `STRICT_TRANS_TABLES`, `NO_ENGINE_SUBSTITUTION`
|
||||
- (related to #2010) Improve product price edition tab
|
||||
- (related to #2005) Use a wider version requirement on thelia/installer for setup/
|
||||
- (related to #1999) Fix Folder breadcrumb, the parent url was not good if you edit a picture in a folder or a content
|
||||
- (related to #1980) Update database schema to increase module version field to 25 chars.
|
||||
- (related to #1967) Module Colissimo : Replace country title by isoalpha2 in export for expeditor
|
||||
- (related to #1962) Fix exception when cloning a product if the i18n in specific locale does not exist
|
||||
- (related to #1958) Fix missing success_url on Brand SEO update
|
||||
- (related to #1956) Fix UX right class in brand products pagination in the frontOffice
|
||||
- (related to #1946) Fix the automatic inclusion of the TaxType class only if extension == php
|
||||
- (related to #1939) Add `visible` and `visible_reverse` values in Product Loop order argument
|
||||
- (related to #1936) Fixed the module name verification for command `module:position`
|
||||
- (related to #1928) Hook DI alert messages thrown as exceptions in dev. mode
|
||||
- (related to #1921) Modules 'configuration' and 'hook' buttons behavior fix
|
||||
- (related to #1920) Fixed coupons conditions label translation
|
||||
- (related to #1917) Fixed translations bug in user mode with view only missing translations activated
|
||||
- (related to #1914) The module list in the translation page is now ordered by module code instead of module title
|
||||
- (related to #1908) A fix for "terms & conditions" bootbox height
|
||||
- (related to #1906) Fix coupon create form data
|
||||
- (related to #1799) Fixed the redirection to rewritten URL
|
||||
- (related to #1797) Fix order manual and manual_reverse in AttributeCombination loop
|
||||
- #1901 Update Colissimo export, add link to order and to customer, add package weight
|
||||
|
||||
# 2.2.2
|
||||
|
||||
- #1901 Update Colissimo export, add link to order and to customer, add package weight
|
||||
- (related to #1857) Fix of hookblack : order.tab
|
||||
- (related to #1843) Fix smarty form_collection_field, a performance problem was introduced after this PR: #1613 because the Form::createView() method create all form view on each call.
|
||||
- (related to #1830) Fix attribute title in the modal "create a new combination"
|
||||
- (related to #1825) Add message if thelia project is not installed
|
||||
- (related to #1824 #1829) Fix the admin home stats, On page load, the month sent to Thelia was bad
|
||||
- (related to #1821) Fix the value for constant AdminForm::LANG_DEFAULT_BEHAVIOR, Resolve ##1820
|
||||
- (related to #1818) Fix menu hook block to integrate main link if it's used #1818
|
||||
- (related to #1806) Fix the event dispatched before decoding of the import, TheliaEvents::IMPORT_AFTER_DECODE to TheliaEvents::IMPORT_BEFORE_DECODE
|
||||
- (related to #1796) Fix regression in OrderAddressEvent cell phone can not be required in the constructor
|
||||
- (related to #1790) Update the default PSE ref when the product ref is updated
|
||||
- (related to #1783) Fix product price exports. Resolve #1078 #1610
|
||||
- (related to #1771) Add argument customer_id for hook customer.edit-js
|
||||
- (related to #1769) Increase API key size to 48
|
||||
- (related to #1768) Update composer.lock file, update of the dependency thelia/currency-converter to version 1.0.1
|
||||
- (related to #1760) Set order status as paid when the FreeOrder module is used to "pay" an order
|
||||
- (related to #1753) Fix the rounding of prices in the order product loop
|
||||
- (related to #1751) Fix for undefined currency exchange rate, add error message in the currency configuration page when an
|
||||
- (related to #1750) Add EQUAL to product loop filter by min or max
|
||||
- (related to #1747) Fixed success_url check for contact form
|
||||
- (related to #1745) Fix output value IS_DEFAULT in the product_sale_elements loop
|
||||
|
||||
# 2.2.1
|
||||
|
||||
- (related to #1699) Fix missing use for BirthdayType
|
||||
- (related to #1700) Fix form retrieving
|
||||
- (related to #1706) Fix coupon form
|
||||
- (related to #1713) Add more options for content, folder and order in search results
|
||||
- (related to #1722) Replaced parameter "locale" with "lang" in URL generated
|
||||
- (related to #1724) Fix customer update input ID and indentation
|
||||
- (related to #1726) Fix method setRangeDate variable in ExportHandler
|
||||
- (related to #1729) Fix all useless DIRECTORY_SEPARATOR
|
||||
- (related to #1730) Change layout to only cache assets/dist
|
||||
- (related to #1732) Update sql constraint for table product_sale_elements_product_image and product_sale_elements_product_document
|
||||
- (related to #1733) Fix order attribute in BaseHook
|
||||
- (related to #1734) Fix critical performance issue on ProductController HydrateObjectForm
|
||||
- (related to #1727) Add template & stock inputs on product creation
|
||||
|
||||
# 2.2.0
|
||||
|
||||
- #1692 Fix amounts displayed on the PDF invoice when a postage with tax is used (fixes #1693 and #1694)
|
||||
- #1692 Fix translations for HookNavigation module
|
||||
- #1692 Update hooktest-template and hooktest-module to prevent thelia-installer conflicts
|
||||
- #1692 Update French, German, Italian translations
|
||||
- #1692 Add Turkish translation
|
||||
- #1688 Fix the permission messages in Thelia installer
|
||||
- #1686 Use createForm method for front forms ```thelia.coupon.code, thelia.order.delivery, thelia.order.payment```
|
||||
- #1667 Fix #1666 Display an error when trying to delete a customer which has orders
|
||||
- #1665 Fix form field type date in Smarty plugin form, checks if the field type is a BirthdayType for assign a smarty variable [years, month, days]
|
||||
- #1659 Fix Administrator edit action in the BackOffice, it was impossible to edit an administrator
|
||||
|
||||
# 2.2.0-beta3
|
||||
|
||||
- #1653 Remove ```AdminIncludes``` folder in the module generation
|
||||
- #1649 Add index in table rewriting_url
|
||||
- #1644 Allow relative path use with Tlog
|
||||
- #1640 Add docker and docker-compose configuration
|
||||
- #1637 Fix admin API edit button
|
||||
- #1635 Add unit tests for the routing files (admin, api, front)
|
||||
- #1634 Remove leftover uncallable routes (admin)
|
||||
- #1631 Remove duplicate route (admin)
|
||||
- #1629 Fix errors reporting of admin hooks
|
||||
- #1632 Fix pagination infinite URL ; redirect on page 1 when changing products per page limit to avoid having no product on the page
|
||||
- #1616 Improve statistic on homepage, add datetimepicker and fix first order
|
||||
- #1601 Add set error in TheliaFormValidator when form is not valid
|
||||
- #1585 Add parameters in frontOffice hooks
|
||||
- #1587 Fix redirect url for the folder image and folder document
|
||||
- #1590 Fix Thelia request initialization
|
||||
- #1593 Fix form serialization in session that contain uploaded files
|
||||
- #1594 update symfony/validator version to 2.3.31
|
||||
- #1598 composer.json update dependency fzaninotto/faker to stable version 1.5
|
||||
- #1583 Add German translations
|
||||
- #1615 New TheliaEvents::CART_FINDITEM event to improve cart management flexibility
|
||||
- #1618 Configurable faker
|
||||
- #1581 Fix the prices precision
|
||||
- Not round the prices without tax in back office
|
||||
- Change the type for the price columns in database. New type : decimal(16,6)
|
||||
|
||||
##DEPRECATED
|
||||
|
||||
- Deprecated AdminIncludes, it's better to use the hooks
|
||||
|
||||
# 2.2.0-beta2
|
||||
|
||||
- Add module image edition in backoffice
|
||||
- The language change links should now use the locale instead of the language code, e.g. http://www.yourshop/some-page?lang=fr_FR instead if http://www.yourshop/some-page?lang=fr. Backward compatibility is provided.
|
||||
- Order status added by modules have their CSS label color handled or have a default color
|
||||
- New login page style
|
||||
- New general style of backoffice
|
||||
- New dashboard arrangement
|
||||
|
||||
# 2.2.0-beta1
|
||||
|
||||
- Fix currency create action to set the by_default field properly.
|
||||
- Add missing column default_template_id in category_version table
|
||||
- The product parameter of the feature_value loop is no longer mandatory
|
||||
- The product parameter new $PRODUCT variable is deprecated. $PRODUCT_ID should be used instead.
|
||||
- Fix smarty `format_date` function to use consistent format when `locale` attribute is used.
|
||||
- A product and all it's dependencies can now be cloned
|
||||
- Fix index form error information session cleaning
|
||||
- Feature's free text values now handle i18n
|
||||
- URLs now have no problem with accents or case
|
||||
- Add order by ```weight``` and ```weight_reverse``` in product sale elements loop
|
||||
- Add the ability to remove arguments in loops.
|
||||
- new back-office is enhanced with a group button actions and a new layout
|
||||
- Added an optional 'ajax-view' parameter to card add form
|
||||
- Add validation groups in form from parser context
|
||||
- Feature value are not translatable
|
||||
- Allow multiple authors in module.xml file. Fixed #1459
|
||||
- Display the mini cart with a hook. Fixed #1233
|
||||
- Add date range for order export
|
||||
- Klik&Pay is no more a submodule
|
||||
|
||||
# 2.2.0-alpha2
|
||||
|
||||
- Add a front office way to make an address the default one
|
||||
- New translation domain that allows to redefine translation strings globally or specifically to a domain. By the way, we can safely update Thelia, modules, templates without overwriting specific translations.
|
||||
- Remove ```currency_rate_update_url``` in ```setup/insert.sql```
|
||||
- Add Cellphone to order address
|
||||
- Add AnyListTypeArgument for loop argument
|
||||
- New command ```module:position```. This command can changes module position
|
||||
- Fix session serialisation
|
||||
- Create a template context
|
||||
- Allow relative path for the file logger from THELIA_ROOT constant
|
||||
- Form error information are stored in the user session
|
||||
- Fix redirection with slash ended uri. Fix #1331
|
||||
- Config ```images_library_path``` and ```documents_library_path``` are now used everywhere
|
||||
- Messages dispatched before and after content creation
|
||||
- Add link to open pdf directly in browser in BO order/update
|
||||
- Added wysiwyg.js hook where it was missing.
|
||||
- Fix hook attribute in pdf template. The hook was never called.
|
||||
- Cellphone column Added in order_address table
|
||||
- Default front office template revamped :
|
||||
- bower and grunt can be used (but not mandatory, you can still use assetic)
|
||||
- less than 4095 css selectors (IE9 compatibility)
|
||||
- bootstrap is now fully used
|
||||
- this template is documented in its readme
|
||||
- Force locale in session when loading a rewriten url
|
||||
- Thelia is now fully usable with HTTPS protocol
|
||||
- Do not delete the default product_sale_elements when the template of a product change
|
||||
- Added standard 'error_url' parameter, like 'success_url'
|
||||
- controller type can be found in the request (#1238)
|
||||
- new helper to get order weight
|
||||
- update selected delivery address in order process when customer change it
|
||||
- new hooks for delivery modules in backoffice and pdf to add extra information
|
||||
|
||||
# 2.2.0-alpha1
|
||||
|
||||
- Add module code ($CODE variable) into payment loop outputs
|
||||
- Add the 'images-folder' tag into module.xml file to deploy the modules images
|
||||
- Add the 'module:list' command, that shows the modules state
|
||||
- Update Admin Logs to add the resource ID when available.
|
||||
- Add render smarty function, that executes the controller given in the action parameter.
|
||||
- Allow modules to use document and image loop with the ```query_namespace``` argument
|
||||
- Enable image zoom in image loop before cropping to guarantee that the resulting image will match the required size, even if the original image is smaller. This feature is active only if the ```allow_zoom``` parameter is true.
|
||||
- When in development mode, an exception is thrown when an error occurs when processing assets, thus helping to diagnose missing files, LESS syntax errors, and the like.
|
||||
- Change default order for cart loop
|
||||
- New module_config Smarty function: {module_config module="module-code" key="parameter-name}
|
||||
- Do not register previous url on XmlHttpRequest
|
||||
- Add ACL on documents and images tabs.
|
||||
- Add confirmation modal on documents deletion
|
||||
- Add shop language choice on install wizard
|
||||
- Remove redundant * on product-edit
|
||||
- Add parameter "page_param_name" for template admin pagination.html. if "page_param_name" is empty, then the name of the parameter is "page"
|
||||
- Add "Refunded" order status
|
||||
- Add environment specific config file loading in modules
|
||||
- Add the possibility for customers to change their email, backoffice configuration variables customer_change_email
|
||||
- Add confirmation email for customers, backoffice configuration variables customer_confirm_email
|
||||
- Refactor ```Thelia\Controller\BaseController::createForm``` into a factory service ```Thelia\Core\Form\TheliaFormFactory```
|
||||
- Refactor ```Thelia\Controller\BaseController::validateForm``` and ```Thelia\Controller\BaseController::getErrorMessages``` into a service ```Thelia\Core\Form\TheliaFormValidator```
|
||||
- Add the `failsafe=[true|false]` parameter to the assets Smarty functions (stylesheets, images, javascripts).
|
||||
- A country could belong to more than one shipping zone.
|
||||
- Add the `exclude_area` parameter to the Country loop.
|
||||
- The Country loop now returns a proper country ISO code, left-padded with zeros, e.g. '004' instead of '4'
|
||||
- The Country::getAreaId() method is DEPRECATED.
|
||||
- Add the `country` and `order` parameters to Area loop
|
||||
- Add the `area` parameter to Module loop
|
||||
- Improved Shipping zones management
|
||||
- Add cache on the graph of the home page, possibility to disable cache or change ttl cache, with the configuration variable admin_cache_home_stats_ttl
|
||||
- New feature: a default product template could be defined in categories. Products created in this category will get this default product template. If no default product template is defined in a given category, it will be searched in parent categories.
|
||||
- New main navigation style and position
|
||||
- jquery.ui.datepicker is now DEPRECATED and will be REMOVED in 2.3. Please use boostrap-datepicker
|
||||
- Add ```thelia.logger``` service to prepare the transition with another logger.
|
||||
- Add 62 new admin hook
|
||||
- Add stacked current form into parser context. It allows to have nested forms while using the new way to write forms.
|
||||
- Module information and documentation could be viewed directly from the module list
|
||||
- Add the possibility to translate text in the sql files (insert.sql, update/sql/\*.sql). to generate sql files use command `php Thelia generate:sql`. Translation can be made in the back office, in the translation page.
|
||||
- format_date smarty function now handle symfony form type ```date```, ```datetime``` and ```time``` view value.
|
||||
- Allow BaseController::generateOrderPdf to generate a pdf without having the rights
|
||||
- SHOW_HOOK now displays parameters
|
||||
- Add fallback for email template for mails sent from a module. If the template file does not exist in the current email template, it will use the one that comes with the module.
|
||||
- Add dispatch of console events
|
||||
- Refactor VirtualProductDelivery module. The email sending is now triggered from a new event to gain more flexibility. Now, email messages use smarty file templates located in `templates/email/default`.
|
||||
- Added capability to use translator in module functions `preActivation` and `postActivation`
|
||||
- Add environment aware database connection
|
||||
- new 'asset' Smarty function, to get the URL of an arbitrary file from template assets, such as a video or a font.
|
||||
- Imagine package is updated to 0.6.2, which provides a better support for transparency.
|
||||
- Default border color of images resized with resize_mode="border" is now transparent instead of opaque white.
|
||||
- The TemplateHelper class is deprecated. You should now use the thelia.template_helper service. TemplateHelperInterface has been introduced, so that modules may implement alternate versions
|
||||
|
||||
# 2.1.9
|
||||
|
||||
- (related to #2144) Fix automatic configuration for the sql_mode
|
||||
- (related to #2139) Start page correction for the loops
|
||||
- (related to #2135) Fix ressources check for translation view
|
||||
- (related to #2125) fix construct in GenerateRewrittenUrlEvent
|
||||
- (related to #1920) Fixed coupons conditions label translation
|
||||
- (related to #1946) Fix TaxType class only if extension == php
|
||||
- (related to #1958) Missing success_url on Brand SEO update
|
||||
- (related to #1967) Replace country title by isoalpha2 in export for expeditor
|
||||
- (related to #1999) Update FolderBreadcrumbTrait.php
|
||||
- (related to #2005) Use a wider version requirement on thelia/installer for setup
|
||||
- (related to #2091) Checking MySQL version to set sql_mode automatically
|
||||
- (related to #2041) Fix possible circular reference for category tree and folder tree
|
||||
- (related to #2058) Fix Bug on submit combination builder empty form
|
||||
- (related to #2068) Fix customer edit access
|
||||
- (related to #2073) Use template default fallback in View Listener
|
||||
|
||||
# 2.1.8
|
||||
|
||||
- Fix Colissimo module external-schema (related to #1838)
|
||||
- Fix attribute title in the modal "create a new combination" (related to #1830)
|
||||
- Add message if thelia project is not installed (related to #1825)
|
||||
- Fix the event dispatched before decoding of the import, TheliaEvents::IMPORT_AFTER_DECODE to TheliaEvents::IMPORT_BEFORE_DECODE (related to #1806)
|
||||
- Update the default PSE ref when the product ref is updated (related to #1790)
|
||||
- Sanitize the get arguments for admin stats (related to #1782)
|
||||
- Add argument customer_id for hook customer.edit-js (related #1771)
|
||||
- Increase API key size to 48 (related #1769)
|
||||
- Fix for undefined currency exchange rate, add error message in the currency configuration page when an exchange rate could not be found (related #1751)
|
||||
- Fix the rounding of prices in the order product loop (related to #1753)
|
||||
- Add EQUAL to product loop filter by min or max (related to #1750)
|
||||
- Fix output value IS_DEFAULT in the product_sale_elements loop (related to #1745)
|
||||
|
||||
# 2.1.7
|
||||
|
||||
- Fix all useless DIRECTORY_SEPARATOR (related to #1729)
|
||||
- Update sql constraint for table product_sale_elements_product_image and product_sale_elements_product_document (related to #1732)
|
||||
- Fix order attribute in BaseHook (related to #1733)
|
||||
- Fix critical performance issue on ProductController HydrateObjectForm (related to #1734)
|
||||
- Replaced parameter "locale" with "lang" in URL generated (related to #1722)
|
||||
|
||||
# 2.1.6
|
||||
|
||||
- Fix amounts displayed on the PDF invoice when a postage with tax is used (fixes #1693 and #1694).
|
||||
- Check virtualProducts of order before send mail ```mail_virtualproduct```
|
||||
- Add 'step' to input type number to be able to create and edit weight slices price
|
||||
- Fix pagination infinite URL ; redirect on page 1 when changing products per page limit to avoid having no product on the page
|
||||
- Allow relative path use with Tlog
|
||||
- Prevent obscure "[] this value cannot be null" messages.
|
||||
- Prevent short research and keep research in input
|
||||
- Fix meta return array
|
||||
- Fix hook position
|
||||
- Fix Protocol-relative URL for HTTPS
|
||||
- Update Copyright
|
||||
- Fix translations and standardize Import and Export texts
|
||||
- Fix the prices precision
|
||||
|
||||
# 2.1.5
|
||||
|
||||
- Klik&Pay is no more a submodule
|
||||
- default category's parent is now 0
|
||||
- check specific role in security module instead of checking if a user is logged in
|
||||
- add a customer page parameter for the order loop on the customer page
|
||||
- keep break line in ACE editor
|
||||
|
||||
# 2.1.4
|
||||
|
||||
- Add ```export.top``` and ```export.bottom``` hooks
|
||||
- Fix slash ended rewritten url redirection
|
||||
- Remove ```currency_rate_update_url``` in ```setup/insert.sql```
|
||||
- Allow relative path for the file logger from THELIA_ROOT
|
||||
- Fixed product loop behavior when category_default is set
|
||||
- Force locale in session when loading a rewriten url
|
||||
- Add port parameter for installing thelia with cli tools
|
||||
- Change default param of the isPaid function, true is the good default parameter.
|
||||
|
||||
# 2.1.3
|
||||
|
||||
- Add ```\Thelia\Model\OrderProduct::setCartItemId``` and ```\Thelia\Model\OrderProduct::getCartItemId``` to remove the typo with ```cartIemId```
|
||||
- A notice is displayed when the product's template is changed
|
||||
- Security fix on authentication
|
||||
- Rename cookie related config variables. They were prefixed with "thelia_" on insert, but not in the code
|
||||
|
||||
## DEPRECATED
|
||||
|
||||
- ```\Thelia\Model\OrderProduct::setCartIemId``` Because of a typo
|
||||
- ```\Thelia\Model\OrderProduct::getCartIemId``` Because of a typo too
|
||||
|
||||
# 2.1.2
|
||||
|
||||
- Add the possibility to delete a coupon from the backoffice.
|
||||
- module list is now reversed. Delivery modules appear first, then payment and finally classic modules.
|
||||
- display a loader when a module is uploaded
|
||||
- Change product prices export and import format to be compatible, now using product_sale_elements id as key to identify PSE.
|
||||
- Fix unused variable in ```Thelia\Controller\Api\CustomerController::getDeleteEvent```
|
||||
- change default order for cart loop.
|
||||
- Add missing static keyword for ```Thelia\Core\HttpFoundation\JsonResponse::createError```
|
||||
- Do not register previous url on XmlHttpRequest
|
||||
- Fix deploy image directory destination
|
||||
- Fix redirect response if a AuthenticationException is catched
|
||||
- The PaymentModule log default level is now INFO instead of ERROR
|
||||
- Direct instantiations of Thelia forms is deprecated. BaseController::createForm() should be used instead.
|
||||
- Prevent XSS injection in error.html template
|
||||
- The hook method is now stored in the ignored_module_hook table
|
||||
- Allow to hardlink TinyMCE rather than symlink
|
||||
- Add bootstrap paths for thelia-project
|
||||
- Enlarge order dropdown menu to prevent wrapping in some languages
|
||||
- Fixed langugage when previewing e-mails
|
||||
|
||||
# 2.1.1
|
||||
|
||||
- Fix update process from Thelia 2.0.* to 2.1.*
|
||||
|
||||
# 2.1.0
|
||||
|
||||
- abilities to translate email and pdf templates in modules
|
||||
- support of taxes for postage amount
|
||||
- sales modify price on update only if the sale is currently active
|
||||
- cart can be used without thelia cart cookie. Set cart.use_persistent_cookie to 0 in your config variable panel.
|
||||
- hook contains more information like the id of the current object you are working on.
|
||||
- fix module skeleton location
|
||||
|
||||
|
||||
# 2.1.0-beta2
|
||||
|
||||
- config :
|
||||
- environment variable can be used in the database.yml file. See [https://github.com/thelia/thelia/pull/968](https://github.com/thelia/thelia/pull/968)
|
||||
- Allow other projects to override thelia directories constants by using composer "autoload"["file"] entries
|
||||
- smarty:
|
||||
- Add the "current" argument on smarty "url" function that allows you to get the same page but with differant url parameters
|
||||
- new method ```manageStockOnCreation``` in PaymentModuleInterface. If return false, the stock will be decreased on paid status instead of order creation.
|
||||
- Thelia:
|
||||
- Split Thelia on multiple repositories to allow a better version management with composer. For creating a new project, see [https://github.com/thelia/thelia-project]
|
||||
- Extract all the default modules into other repositories
|
||||
- Field type :
|
||||
- added area_id, category_id, folder_id, content_id
|
||||
- thelia type support render_form_field
|
||||
- loop `product_sale_elements` : added `ref` argument and implemented `SearchLoopInterface`
|
||||
- Updated `hasVirtualProduct` in `Order` model to not test the presence of filename, as modules could implement the process differently
|
||||
- new method ```Thelia\Model\Module::getDeliveryModuleInstance()``` return the delivery module instance for the current record.
|
||||
- 'freesans' is now the default font of PDF documents
|
||||
- Anonymous cart is no longer duplicated on customer login
|
||||
|
||||
|
||||
# 2.1.0-beta1
|
||||
|
||||
- Autoload : the autoloader can be cached with Apc or XCache. See new index.php file.
|
||||
- Update : add missing API table creation
|
||||
- The default Tlog level is now TLog::ERROR instead of Tlog::DEBUG
|
||||
- Add error message pages instead of white pages. But you can disable them by setting 0 into the config variable "error_message.show".
|
||||
- Front Office Template: new page to display the details of an order
|
||||
- email can be previewed in the back office
|
||||
- some smarty classes are still present in the core of thelia not to break backward compatibility. Those classes will be deleted in version 2.3 :
|
||||
* Thelia\Core\Template\Smarty\AbstractSmartyPlugin
|
||||
* Thelia\Core\Template\Smarty\SmartyPluginDescriptor
|
||||
- the default address label is now translated
|
||||
- fixed "strictly use the requested language"
|
||||
- new config variable :
|
||||
* session_config.lifetime : Life time of the session cookie in the customer browser, in seconds
|
||||
* error_message.show : Show error message instead of a white page on a server error
|
||||
* error_message.page_name : Filename of the error page. Default : error.html
|
||||
- All cs issues are fixed, Thelia is now fully PSR2 compliant
|
||||
- Allow possibility to upload a module with github suffix (eg : paypal-master.zip)
|
||||
- Added a fallback for template to use the default template. it's useful for modules that are used on a website that doesn't use the default template
|
||||
|
||||
# 2.1.0-alpha2
|
||||
|
||||
- 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](http://doc.thelia.net/en/documentation/api/authentication.html)
|
||||
- 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
|
||||
|
||||
# 2.0.12
|
||||
|
||||
- Sanitize the get arguments for admin stats (related to #1782)
|
||||
- Add EQUAL to product loop filter by min or max (related to #1750)
|
||||
- Fix output value IS_DEFAULT in the product_sale_elements loop (related to #1745)
|
||||
|
||||
# 2.0.11
|
||||
|
||||
- Fix critical performance issue on ProductController HydrateObjectForm (related to #1734)
|
||||
|
||||
# 2.0.10
|
||||
|
||||
- Add 'step' to input type number to be able to create and edit weight slices price
|
||||
- Fix pagination infinite URL ; redirect on page 1 when changing products per page limit to avoid having no product on the page
|
||||
- Allow relative path use with Tlog
|
||||
- Prevent obscur "[] this value cannot be null" messages.
|
||||
- Prevent short research and keep research in input
|
||||
- Fix Protocol-relative URL for HTTPS
|
||||
- Fix fatal error that occurs when store does not use the default order_configuration email
|
||||
|
||||
# 2.0.9
|
||||
|
||||
- Klik&Pay is no more a submodule
|
||||
|
||||
# 2.0.8
|
||||
|
||||
- Allow relative path from thelia root for the file logger (by default log/log-thelia.txt)
|
||||
- Force rediction on admin login even when connected to the front
|
||||
|
||||
# 2.0.7
|
||||
|
||||
- Change TokenProvider behavior to be more flexible
|
||||
- More secure csrf token
|
||||
- Fix ```templates/backOffice/default/includes/inner-form-toolbar.html``` change currency destination
|
||||
- Fix install bug if the admin password doesn't match
|
||||
|
||||
# 2.0.6
|
||||
|
||||
- Do not register previous url on XmlHttpRequest
|
||||
|
||||
# 2.0.5
|
||||
|
||||
- add new function to smarty ```set_previous_url```. The parameter ```ignore_current``` allows you to ignore the current url and it will not be store as a previous url
|
||||
- 'freesans' is now the default font of PDF documents
|
||||
- fix bug with cart foreign key constraint #926
|
||||
- fix typo with '}' #999
|
||||
- add missing 'admin.search' resource
|
||||
- add default translation for '/ajax/mini-cart'
|
||||
- fix product add to cart
|
||||
- fix form firewall variable name
|
||||
- add more module includes in order-edit.html
|
||||
- do not allow failure anymore on travis php5.6
|
||||
|
||||
#2.0.4
|
||||
|
||||
- Updating stock when changing order : canceled status
|
||||
- order table is versionnable now.
|
||||
- product_sale_elements_id is added to order_product table.
|
||||
|
||||
#2.0.3
|
||||
|
||||
- Fix js syntax in order-delivery template
|
||||
- price are now save without any round.
|
||||
/!\ Check in your templates if you are using format_money or format_number function. Don't display prices directly.
|
||||
- change Argument type for ref parameter in Product loop
|
||||
- Fix export template
|
||||
- [Tinymce]fix invisible thumb in file manager
|
||||
|
||||
#2.0.3-beta2
|
||||
|
||||
- fix update process
|
||||
- fix coupons trait
|
||||
- update schema adding new constraints on foreign keys
|
||||
- previous url is now saved in session. use ```{navigate to="previous"}``` in your template
|
||||
|
||||
#2.0.3-beta
|
||||
|
||||
- New coupon type: Free product if selected products are in the cart.
|
||||
- New feature: Product Brands / Suppliers management
|
||||
- New 'brand' loop and substitution. product, image and document loop have been updated.
|
||||
- Images and document processing have been refactored.
|
||||
- Added store description field for SEO
|
||||
- Added code editor on textarea on email templates page
|
||||
- Fixed issues on position tests
|
||||
- Fixed issues on RSS feed links
|
||||
- Update SwiftMailer
|
||||
- Fix bugs on customer change password form and module "order by title"
|
||||
- Add the ability to place a firewall on forms. To use this in a module, extend Thelia\Form\FirewallForm instead of BaseForm
|
||||
- Add Exports and Imports management
|
||||
- Default front office template:
|
||||
- Display enhancement
|
||||
- Optimization of the uses of Thelia loops to gain performances and consistency
|
||||
- Optimization for SEO : meta description fallback, title on category page, ...
|
||||
- new PSE layout in product page, attributes are separated
|
||||
- Support of 'check-available-stock' config variable
|
||||
- Terms and conditions agreement is now in the order process
|
||||
- Default pdf template:
|
||||
- Added list of amount by tax rule
|
||||
- Display enhancement
|
||||
- Added legal information about the store
|
||||
- Demo:
|
||||
- Support for brand
|
||||
- Added folders and contents data.
|
||||
|
||||
#2.0.2
|
||||
|
||||
- Coupon UI has been redesigned.
|
||||
- New coupon types:
|
||||
- Constant discount on selected products
|
||||
- Constant discount on products of selected categories
|
||||
- Percentage discount on selected products
|
||||
- Percentage discount on products of selected categories
|
||||
- New coupon conditions :
|
||||
- Start date
|
||||
- Billing country
|
||||
- Shipping country
|
||||
- Cart contains product
|
||||
- Cart contains product from category
|
||||
- For specific customers
|
||||
- Free shipping can now be restricted to some countries and/or shipping methods
|
||||
- session initialization use now event dispatcher :
|
||||
- name event : thelia_kernel.session (see Thelia\Core\TheliakernelEvents::SESSION
|
||||
- class event : Thelia\Core\Event\SessionEvent
|
||||
- example : Thelia\Core\EventListener\SessionListener
|
||||
- Creation of Thelia\Core\TheliakernelEvents class for referencing kernel event
|
||||
- Add new command line that refresh modules list `Thelia module:refresh`
|
||||
- Coupon internals have been simplified and improved.
|
||||
- Error messages are displayed in install process
|
||||
- Add pagination on catalog page in Back-Office
|
||||
- Add Hong Kong to country list
|
||||
- Fixed issue #452 when installing Thelia on database with special characters
|
||||
- implement search on content, folder and category loop.
|
||||
- all form are documented
|
||||
- template exists for managing google sitemap : sitemap.html
|
||||
|
||||
#2.0.1
|
||||
|
||||
- possibility to apply a permanent discount on a customer
|
||||
- display estimated shipping on cart page
|
||||
- export newsletter subscribers list
|
||||
- Fix redirect issues
|
||||
- enhancement of coupon UI
|
||||
- enhancement of admin menu. Coupon is now in Tools menu
|
||||
- front office, email and pdf templates are translated in Russian and Czech
|
||||
- fix bugs : https://github.com/thelia/thelia/issues?milestone=4&page=1&state=closed
|
||||
|
||||
#2.0.0
|
||||
|
||||
- Coupons values are re-evaluated when a product quantity is changed in the shopping cart
|
||||
- You can declare new compilerPass in modules. See Thelia\Module\BaseModule::getCompilers phpDoc
|
||||
- Add ability to load assets from another template. See https://gist.github.com/lunika/9365180
|
||||
- allow possibility to use Dependency Injection compiler in Thelia modules
|
||||
- Add Deactivate Module Command Line
|
||||
- Add indexes to database to improve performance
|
||||
- Order and customer references are more human readable than before
|
||||
- Refactor intl process. A domain is created for each templates and modules :
|
||||
- core => for thelia core translations
|
||||
- bo.template_name (eg : bo.default) => for each backoffice template
|
||||
- fo.template_name (eg : fo.default) => for each frontoffice template
|
||||
- pdf.template_name (eg : pdf.default) => for each pdf template
|
||||
- email.template_name (eg : email.default) => for each email template
|
||||
- modules :
|
||||
- module_code (eg : paypal) => fore module core translations
|
||||
- module_code.ai (eg : paypal.ai) => used in AdminIncludes templates
|
||||
- bo.module_code.template_name (eg : bo.paypal.default) => used in back office template
|
||||
- fo.module_code.template_name (eg : fo.paypal.default) => used in front office template
|
||||
- new parameter for smarty ```intl``` function. The parameter ```d``` allow you to specify the translation domain (as explain before). This parameter is optional
|
||||
- the ```d``` can be omitted if you use ```{default_translation_domain domain='bo.default'}``` in your layout. If you use this smarty function, the ```d``` parameter is automatically set with the domain specify in ```default_translation_domain``` function
|
||||
- We changed Thelia's license. Thelia is published under the LGPL 3.0+ License
|
||||
|
||||
|
||||
#2.0.0-RC1
|
||||
|
||||
- Remove container from BaseAction.
|
||||
- fix sending mail on order creation
|
||||
- less files in default templates are already compiled in css.
|
||||
- all validator message are translated
|
||||
- type argument is now a default argument and used for generating loop cache
|
||||
- fix total amount without discount in backoffice. Fix #235
|
||||
- description is not required anymore in coupon form. Fix #233
|
||||
- Do not allow to cumulate the same coupon many times. Fix #217
|
||||
- colissimo module is now fully configurable
|
||||
- test suite are executed on PHP 5.4, 5.5, 5.6 and HHVM. Thelia is not fully compatible with HHVM
|
||||
- add new attributes to loop pager (http://doc.thelia.net/en/documentation/loop/index.html#page-loop)
|
||||
- we created a new github repo dedicated for modules : https://github.com/thelia-modules
|
||||
|
||||
#2.0.0-beta4
|
||||
|
||||
- Tinymce is now a dedicated module. You need to activate it.
|
||||
- Fix PDF creation. Bug #180
|
||||
- Fix many translation issues.
|
||||
- The TaxManager is now a service
|
||||
- Loop output is now put in cache for better performance
|
||||
- loop count is refactored. It used now count propel method instead of classic loop method
|
||||
- UTF-8 is used during install process, no more encoding problem in database now
|
||||
- an admin can now choose a prefered locale and switch language in admin panel
|
||||
- module repository is available on github : https://github.com/thelia-modules
|
||||
- import module from Thelia 1 is available. It works from Thelia 1.4.2 : https://github.com/thelia-modules/importT1
|
||||
|
||||
#2.0.0-beta3
|
||||
|
||||
- Coupon effect inputs are now more customisable (input text, select, ajax, etc.. are usable) and unlimited amount of input for coupon effect are now possible too
|
||||
- when a category is deleted, all subcategories are deleted
|
||||
- delete products when categories are removed. Works only when the category is the default one for this product
|
||||
- Manager update exists now. Run ```php Thelia thelia:update```
|
||||
- Coupon works now
|
||||
- Improved tax rule configuration
|
||||
|
||||
#2.0.0-beta2
|
||||
|
||||
- http://doc.thelia.net is available in beta.
|
||||
- Increase performance in prod mode.
|
||||
- Front part (routes and controller) are now a dedicated module.
|
||||
- allow to create a customer in admin panel
|
||||
- translation is implemented :
|
||||
- I18n directory in template or module.
|
||||
- multiple extensions are available. We choose to use php but you can use other.
|
||||
- You can translate your template or module from the admin.
|
||||
- Admin hooks exist. With this hooks, a module can insert code in admin pages
|
||||
- Admin hooks can be display using SHOW_INCLUDE=1 in your query string and in dev mode (http://doc.thelia.net/en/documentation/modules/hook.html)
|
||||
- change memory_limit parameter in installation process. 128M is now needed
|
||||
- assets can be used from template directory and from module
|
||||
- Product, Category, Folder and Content have a dedicated SEO panel
|
||||
- Allow to configure store information like email, address, phone number, etc.
|
||||
- email management : http://doc.thelia.net/en/documentation/templates/emails.html
|
||||
- "How to contribute ?" see http://doc.thelia.net/en/documentation/contribute.html
|
||||
-Cache http (use it carefully, default template is not compatible with this cache) :
|
||||
- if you don't know http specification, learn it first http://www.w3.org/Protocols/rfc2616/rfc2616.html
|
||||
- esi tag integrated, use {render_esi path="http://your-taget.tld/resource"}
|
||||
- if no reverse proxy detected, html is render instead of esi tag
|
||||
- if you can't install a reverse proxy like varnish, use the HttpCache (just uncomment line 14 in web/index.php file)
|
||||
- resources :
|
||||
- http://www.mnot.net/cache_docs/ (fr)
|
||||
- http://tomayko.com/writings/things-caches-do (en)
|
||||
- http://symfony.com/doc/current/book/http_cache.html#http-cache-introduction (en and fr)
|
||||
51
CONTRIBUTORS.md
Normal file
@@ -0,0 +1,51 @@
|
||||
CONTRIBUTORS
|
||||
============
|
||||
|
||||
If you contributes or contributed to this project and do not appear in this list below,
|
||||
please email us (info@thelia.net) or fork this file on GitHub and send a pull-request.
|
||||
|
||||
- Manuel Raynaud (lunika)
|
||||
- Franck Allimant (roadster31)
|
||||
- Etienne Roudeix (etienneroudeix)
|
||||
- Benjamin Perche (lovenunu)
|
||||
- Julien Chanseaume (bibich)
|
||||
- Christophe Laffont (touffies)
|
||||
- Michaël Espeche (mespeche)
|
||||
- Gilles Bourgeat (gillesbourgeat)
|
||||
- Guillaume Morel (gmorel)
|
||||
- Yochima (Yochima)
|
||||
- Goleo Bruno (badsuricate)
|
||||
- (zzuutt)
|
||||
- Jérôme Billiras (bilhackmac)
|
||||
- Emmanuel Nurit (enurit)
|
||||
- (Asturyan)
|
||||
- Etienne Perriere (Mertiozys)
|
||||
- (griotteau)
|
||||
- Alban Baixas (Alban-io)
|
||||
- Christophe (InformatiqueProg)
|
||||
- (jodeq)
|
||||
- (nicolasleon)
|
||||
- Chevrier (AnthonyMeedle)
|
||||
- Romain Ducher (air-dex)
|
||||
- Antony Penalver (Soldras)
|
||||
- David Rimbault (Id4v)
|
||||
- Stéphanie Pinet (stephaniepinet)
|
||||
- Damien Foulhoux (Lucanis)
|
||||
- Vincent Lopes-Vicente (lopes-vincent)
|
||||
- (alex63530)
|
||||
- Arnault Pachot (apachot)
|
||||
- Cédric Sibaud (csibaud)
|
||||
- Stéphane Calisti (csteph85)
|
||||
- Alex Rock Ancelet (Pierstoval)
|
||||
- Baptiste Cabarrou (bcabarrou)
|
||||
- Adrien Bourroux (driou)
|
||||
- (AdeDidou)
|
||||
- DirtyF (DirtyF)
|
||||
- (xockduo)
|
||||
- Michaël Marinetti (Asenar)
|
||||
- Mickaël (Kira-kyuukyoku)
|
||||
- Quentin Dufour (superboum)
|
||||
- Lespes (knjeurope)
|
||||
- Tarun Garg (tarun1793)
|
||||
- poum (poum)
|
||||
- Luis Cordova (cordoval)
|
||||
4
COPYRIGHT.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
THELIA
|
||||
Copyright (C) 2005-2015 OpenStudio
|
||||
|
||||
THELIA application uses externals components and libraries which are released under their own LGPL compatible license terms.
|
||||
165
LICENSE.txt
Normal file
@@ -0,0 +1,165 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
196
Readme.md
Normal file
@@ -0,0 +1,196 @@
|
||||
Readme
|
||||
======
|
||||
|
||||
## Warning
|
||||
### This is the development repository of Thelia. If you want to create a project, please take a look at [thelia/thelia-project](https://github.com/thelia/thelia-project)
|
||||
|
||||
Thelia
|
||||
------
|
||||
[](https://travis-ci.org/thelia/thelia) [](https://packagist.org/packages/thelia/thelia) [](https://scrutinizer-ci.com/g/thelia/thelia/)
|
||||
|
||||
[Thelia](http://thelia.net/) is an open source tool for creating e-business websites and managing online content. This software is published under LGPL.
|
||||
|
||||
This is the new major version of Thelia.
|
||||
|
||||
A repository containing all thelia modules is available at this address : https://github.com/thelia-modules
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
* PHP 5.4
|
||||
* Required extensions :
|
||||
* PDO_Mysql
|
||||
* mcrypt
|
||||
* intl
|
||||
* gd
|
||||
* curl
|
||||
* safe_mode off
|
||||
* memory_limit at least 128M, preferably 256.
|
||||
* post\_max\_size 20M
|
||||
* upload\_max\_filesize 2M
|
||||
* date.timezone must be defined
|
||||
* Web Server Apache 2 or Nginx
|
||||
* MySQL 5
|
||||
|
||||
|
||||
### MySQL 5.6
|
||||
|
||||
As of MySQL 5.6, default configuration sets the sql_mode value to
|
||||
|
||||
```
|
||||
STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
|
||||
```
|
||||
|
||||
This 'STRICT_TRANS_TABLES' configuration results in SQL errors when no default value is defined on NOT NULL columns and the value is empty or invalid.
|
||||
|
||||
You can edit this default config in ` /etc/my.cnf ` and change the sql_mode to remove the STRICT_TRANS_TABLES part
|
||||
|
||||
```
|
||||
[mysqld]
|
||||
sql_mode=NO_ENGINE_SUBSTITUTION
|
||||
```
|
||||
|
||||
Assuming your sql_mode is the default one, you can change the value directly on the run by running the following SQL Command
|
||||
|
||||
```sql
|
||||
SET @@GLOBAL.sql_mode='NO_ENGINE_SUBSTITUTION', @@SESSION.sql_mode='NO_ENGINE_SUBSTITUTION'
|
||||
```
|
||||
|
||||
For more information on sql_mode you can consult the [MySQL doc](http://dev.mysql.com/doc/refman/5.0/fr/server-sql-mode.html "sql Mode")
|
||||
|
||||
## Archive builders
|
||||
Thelia's archive builder's needs external libraries.
|
||||
For zip archives, you need PECL zip. See [PHP Doc](http://php.net/manual/en/zip.installation.php)
|
||||
|
||||
For tar archives, you need PECL phar. Moreover, you need to deactivate php.ini option "phar.readonly":
|
||||
```ini
|
||||
phar.readonly = Off
|
||||
```
|
||||
|
||||
For tar.bz2 archives, you need tar's dependencies and the extension "bzip2". See [PHP Doc](http://php.net/manual/fr/book.bzip2.php)
|
||||
|
||||
For tar.gz archives, you need tar's dependencies and the extension "zlib". See [PHP Doc](http://fr2.php.net/manual/fr/book.zlib.php)
|
||||
|
||||
## Download Thelia 2 and install its dependencies
|
||||
|
||||
You can get the sources from git and then let composer install dependencies, or use composer to install the whole thelia project into a specific directory
|
||||
|
||||
### Using git for download and composer for dependencies
|
||||
``` bash
|
||||
$ git clone --recursive https://github.com/thelia/thelia path
|
||||
$ cd path
|
||||
$ git checkout 2.3.1 (2.2.3 or 2.1.9)
|
||||
$ curl -sS https://getcomposer.org/installer | php
|
||||
$ php composer.phar install
|
||||
```
|
||||
|
||||
### Using composer for both download and dependencies
|
||||
``` bash
|
||||
$ curl -sS https://getcomposer.org/installer | php
|
||||
$ php composer.phar create-project thelia/thelia path/ 2.3.1 (2.2.3 or 2.1.9)
|
||||
```
|
||||
|
||||
## Install it
|
||||
|
||||
You can install Thelia by two different way
|
||||
|
||||
### Using install wizard
|
||||
|
||||
Installing thelia with the web install wizard allow to create an administrator, add some informations about your shop, etc
|
||||
|
||||
First of all, you have to configure a vhost as describe in [configuration](http://doc.thelia.net/en/documentation/configuration.html) section.
|
||||
|
||||
The install wizard in accessible with your favorite browser :
|
||||
|
||||
``` bash
|
||||
http://yourdomain.tld/[/subdomain_if_needed]/install
|
||||
```
|
||||
|
||||
For example, I have thelia downloaded at http://thelia.net and my vhost is correctly configured, I have to reach this address :
|
||||
|
||||
``` bash
|
||||
http://thelia.net/install
|
||||
```
|
||||
|
||||
### Using cli tools
|
||||
|
||||
``` bash
|
||||
$ php Thelia thelia:install
|
||||
```
|
||||
|
||||
You just have to follow all instructions.
|
||||
|
||||
### Docker and docker compose
|
||||
|
||||
This repo contains all the configuration needed to run Thelia with docker and docker-compose.
|
||||
|
||||
It requires obviously [docker](https://docker.com/) and [docker-compose](http://docs.docker.com/compose/)
|
||||
|
||||
How to start the configuration :
|
||||
|
||||
```
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
tip : create an alias for docker-compose, it's boring to write it all the time
|
||||
|
||||
All the script are launched through docker. For examples :
|
||||
|
||||
```
|
||||
docker exec -it thelia_web_1 php Thelia cache:clear
|
||||
docker exec -it thelia_web_1 php setup/faker.php
|
||||
docker exec -it thelia_web_1 unit-tests.sh
|
||||
docker exec -it thelia_web_1 php composer.phar install
|
||||
```
|
||||
|
||||
Database information :
|
||||
|
||||
* host : mariaDB
|
||||
* login : root
|
||||
* password : toor
|
||||
|
||||
Once started, you can access it with your browser at this url : http://127.0.0.1:8080 and phpmyadmin : http://127.0.0.1:8081
|
||||
|
||||
What is missing :
|
||||
|
||||
* confguration for export compression (zip, gzip, etc)
|
||||
|
||||
Obviously you can modify all the configuration for your own case, for example the php version or add environment variable for the database configuration. Each time you modify the configuration, you have to rebuild it :
|
||||
|
||||
```
|
||||
docker-compose build --no-cache
|
||||
```
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Thelia documentation is available at http://doc.thelia.net
|
||||
|
||||
|
||||
Roadmap
|
||||
-------
|
||||
|
||||
The Roadmap is available at http://thelia.net/community/roadmap
|
||||
|
||||
|
||||
Contribute
|
||||
----------
|
||||
|
||||
see the documentation : http://doc.thelia.net/en/documentation/contribute.html
|
||||
|
||||
If you submit modifications that adds new data or change the structure of the database, take a look to http://doc.thelia.net/en/documentation/contribute.html#sql-scripts-modification
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
Consult the page : http://localhost/thelia/web/index_dev.php
|
||||
|
||||
You can create a virtual host and choose web folder for root directory.
|
||||
|
||||
To run tests (phpunit required) :
|
||||
|
||||
``` bash
|
||||
$ phpunit
|
||||
```
|
||||
|
||||
We still have lot of work to achieve but enjoy this part.
|
||||
5
Thelia
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
$bootstrapFile = __DIR__ . "/core/vendor/autoload.php";
|
||||
include __DIR__ . "/core/Thelia";
|
||||
68
UPDATE.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# How to update your Thelia ?
|
||||
|
||||
If you have already installed Thelia but a new version is available, you can update easily.
|
||||
|
||||
Before proceeding to the update, it's strongly recommended to backup your website (files and database).
|
||||
You can backup your database with tools such as [phpmyadmin](http://www.phpmyadmin.net)
|
||||
or [mysqldump](dev.mysql.com/doc/refman/5.6/en/mysqldump.html).
|
||||
|
||||
## 1. Update files
|
||||
|
||||
- Download the latest version of Thelia : <http://thelia.net/download/thelia.zip>
|
||||
- Extract the zip in a temporary directory
|
||||
- Then you should replace (not only copy) all the files from the new Thelia version :
|
||||
- all files from root directory
|
||||
- bin (*optional*)
|
||||
- core (**mandatory**)
|
||||
- setup (**mandatory**)
|
||||
- Then, you have to merge (copy in your existent directories) these other directories. Normally,
|
||||
you haven't modify files inside these directories (just created new ones - like your frontOffice template).
|
||||
But If you have modified files, you should proceed carefully and try to report all your changes.
|
||||
- local/config
|
||||
- local/modules
|
||||
- templates
|
||||
- web
|
||||
|
||||
|
||||
## 2. Update database
|
||||
|
||||
Then you have 2 different ways to proceed. In each method, a backup of your database can be automatically
|
||||
performed if you want to. If an error is encountered, then your database will be restored.
|
||||
But if your database is quite large, it's better to make a backup manually.
|
||||
|
||||
### 2.1. use the update script
|
||||
|
||||
In a command shell, go to the root directory of your installation, run and follow instructions :
|
||||
|
||||
```bash
|
||||
php setup/update.php
|
||||
```
|
||||
|
||||
### 2.2. use the update wizard
|
||||
|
||||
An update wizard is available in the ```web/install``` directory. It's the same directory used by the install wizard.
|
||||
|
||||
**You have to protect the web folder if your site is public (htaccess, List of allowed IP, ...).**
|
||||
|
||||
The update wizard in accessible with your favorite browser :
|
||||
|
||||
```bash
|
||||
http://yourdomain.tld/[/subdomain_if_needed]/install
|
||||
```
|
||||
|
||||
Note:
|
||||
|
||||
- the wizard is available only if your Thelia is not already in the latest version.
|
||||
- at the end of the process, the install directory will be removed.
|
||||
|
||||
|
||||
## 3. Clear cache
|
||||
|
||||
Once the update is done successfully, you have to clear all caches :
|
||||
|
||||
- clear all caches in all environment :
|
||||
- ```php Thelia cache:clear```
|
||||
- ```php Thelia cache:clear --env=prod```
|
||||
|
||||
If the command fails, you can do it manually. Just delete the content of
|
||||
the ```cache``` and ```web/cache``` directories.
|
||||
131
UPGRADE-2.3.md
Normal file
@@ -0,0 +1,131 @@
|
||||
|
||||
UPGRADE FROM 2.2 to 2.3
|
||||
=======================
|
||||
|
||||
|
||||
EventDispatcher
|
||||
----------------
|
||||
|
||||
* The `getDispatcher()` and `getName()` methods from `Symfony\Component\EventDispatcher\Event`
|
||||
are deprecated, the event dispatcher instance and event name can be received in the listener call instead.
|
||||
|
||||
Before:
|
||||
|
||||
```php
|
||||
use Symfony\Component\EventDispatcher\Event;
|
||||
|
||||
class Foo
|
||||
{
|
||||
public function myFooListener(Event $event)
|
||||
{
|
||||
$dispatcher = $event->getDispatcher();
|
||||
$eventName = $event->getName();
|
||||
$dispatcher->dispatch('log', $event);
|
||||
|
||||
// ... more code
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
After:
|
||||
|
||||
```php
|
||||
use Symfony\Component\EventDispatcher\Event;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
||||
class MyListenerClass
|
||||
{
|
||||
public function myListenerMethod(Event $event, $eventName, EventDispatcherInterface $dispatcher)
|
||||
{
|
||||
$dispatcher->dispatch('log', $event);
|
||||
|
||||
// ... more code
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
While this above is sufficient for most uses, **if your module must be compatible with versions less than 2.3, or if your module uses multiple EventDispatcher instances,** you might need to specifically inject a known instance of the `EventDispatcher` into your listeners. This could be done using constructor or setter injection as follows:
|
||||
|
||||
```php
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
|
||||
class MyListenerClass
|
||||
{
|
||||
protected $dispatcher = null;
|
||||
|
||||
public function __construct(EventDispatcherInterface $dispatcher)
|
||||
{
|
||||
$this->dispatcher = $dispatcher;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Request and RequestStack
|
||||
----------------
|
||||
|
||||
* The `Request` service are deprecated, you must now use the `RequestStack` service.
|
||||
|
||||
##### In your loops
|
||||
The way to recover the request does not change.
|
||||
|
||||
To get the current request
|
||||
|
||||
```php
|
||||
class MyLoopClass extends BaseLoop implements PropelSearchLoopInterface
|
||||
{
|
||||
public function buildModelCriteria()
|
||||
{
|
||||
// Get the current request
|
||||
$request = $this->getCurrentRequest();
|
||||
// Or
|
||||
$request = $this->requestStack->getCurrentRequest();
|
||||
|
||||
// ... more code
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
##### In your controllers
|
||||
It's not recommended to use `getRequest()` and `getSession()`, the Request instance can be received in the action method parameters.
|
||||
However, the `getRequest()` method returns the current request.
|
||||
**Warning !!** This is not compatible with Thelia 2.0, because it uses Symfony 2.2
|
||||
|
||||
To get the current request
|
||||
|
||||
```php
|
||||
use Thelia\Core\HttpFoundation\Request;
|
||||
|
||||
class MyControllerClass extends ...
|
||||
{
|
||||
public function MyActionMethod(Request $request, $query_parameters ...)
|
||||
{
|
||||
$session = $request->getSession();
|
||||
// ... more code
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Container Scopes
|
||||
----------------
|
||||
|
||||
* The "container scopes" concept no longer exists in Thelia 2.3.
|
||||
For backward compatibility, the attributes `scope` is automatically removed of the xml configuration files.
|
||||
**Warning !!** The attributes `scope` are always needed for your modules compatible with Thelia < 2.3.
|
||||
[See the Symfony documentation for more information](http://symfony.com/doc/2.8/cookbook/service_container/scopes.html)
|
||||
|
||||
|
||||
Unit Test
|
||||
----------------
|
||||
|
||||
* The `SecurityContext`, `ParserContext`, `TokenProvider`, `TheliaFormFactory`, `TaxEngine` services are no longer dependent on "Request", but "RequestSTack".
|
||||
This may break your unit tests.
|
||||
|
||||
For more information about the upgrade from Symfony 2.3 to Symfony 2.8
|
||||
----------------
|
||||
|
||||
[Upgrade from Symfony 2.3 to 2.4](https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.4.md)
|
||||
[Upgrade from Symfony 2.4 to 2.5](https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.5.md)
|
||||
[Upgrade from Symfony 2.5 to 2.6](https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.6.md)
|
||||
[Upgrade from Symfony 2.6 to 2.7](https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.7.md)
|
||||
[Upgrade from Symfony 2.7 to 2.8](https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.8.md)
|
||||
[Upgrade from Symfony 2.8 to 3.0](https://github.com/symfony/symfony/blob/2.8/UPGRADE-3.0.md)
|
||||
191
bin/lessc
Normal file
@@ -0,0 +1,191 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
require_once dirname(__FILE__) . '/../lib/Less/Autoloader.php';
|
||||
Less_Autoloader::register();
|
||||
|
||||
// Create our environment
|
||||
$env = array('compress' => false, 'relativeUrls' => false);
|
||||
$silent = false;
|
||||
$watch = false;
|
||||
$rootpath = '';
|
||||
|
||||
// Check for arguments
|
||||
array_shift($argv);
|
||||
if (!count($argv)) {
|
||||
$argv[] = '-h';
|
||||
}
|
||||
|
||||
// parse arguments
|
||||
foreach ($argv as $key => $arg) {
|
||||
if (preg_match('/^--?([a-z][0-9a-z-]*)(?:=([^\s]+))?$/i', $arg, $matches)) {
|
||||
$option = $matches[1];
|
||||
$value = isset($matches[2]) ? $matches[2] : false;
|
||||
unset($argv[$key]);
|
||||
|
||||
switch ($option) {
|
||||
case 'h':
|
||||
case 'help':
|
||||
echo <<<EOD
|
||||
Usage: lessc [options] sources [destination]
|
||||
|
||||
-h, --help Print help (this message) and exit.
|
||||
-s, --silent Suppress output of error messages.
|
||||
-v, --version Print version number and exit.
|
||||
-x, --compress Compress output by removing some whitespaces.
|
||||
--include-path=PATHS Set include paths. Separated by `:'. Use `;' on Windows.
|
||||
--strict-imports Force evaluation of imports.
|
||||
-sm=on|off Turn on or off strict math, where in strict mode, math
|
||||
--strict-math=on|off requires brackets. This option may default to on and then
|
||||
be removed in the future.
|
||||
-su=on|off Allow mixed units, e.g. 1px+1em or 1px*1px which have units
|
||||
--strict-units=on|off that cannot be represented.
|
||||
-ru, --relative-urls re-write relative urls to the base less file.
|
||||
-rp, --rootpath=URL Set rootpath for url rewriting in relative imports and urls.
|
||||
Works with or without the relative-urls option.
|
||||
-w, --watch Watch input files for changes.
|
||||
|
||||
|
||||
EOD;
|
||||
exit;
|
||||
case 's':
|
||||
case 'silent':
|
||||
$silent = true;
|
||||
break;
|
||||
|
||||
case 'w':
|
||||
case 'watch':
|
||||
$watch = true;
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
case 'version':
|
||||
echo "lessc " . Less_Version::version . " (less.php)\n\n";
|
||||
exit;
|
||||
|
||||
case 'rp':
|
||||
case 'rootpath':
|
||||
$rootpath = $value;
|
||||
break;
|
||||
|
||||
|
||||
//parser options
|
||||
case 'compress':
|
||||
$env['compress'] = true;
|
||||
break;
|
||||
|
||||
case 'ru':
|
||||
case 'relative-urls':
|
||||
$env['relativeUrls'] = true;
|
||||
break;
|
||||
|
||||
case 'su':
|
||||
case 'strict-units':
|
||||
$env['strictUnits'] = ($value === 'on');
|
||||
break;
|
||||
|
||||
case 'sm':
|
||||
case 'strict-math':
|
||||
$env['strictMath'] = ($value === 'on');
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
case 'include-path':
|
||||
$env['import_dirs'] = preg_split('#;|\:#', $value);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count($argv) > 1) {
|
||||
$output = array_pop($argv);
|
||||
$inputs = $argv;
|
||||
}
|
||||
else {
|
||||
$inputs = $argv;
|
||||
$output = false;
|
||||
}
|
||||
|
||||
if (!count($inputs)) {
|
||||
echo("lessc: no input files\n");
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($watch) {
|
||||
if (!$output) {
|
||||
echo("lessc: you must specify the output file if --watch is given\n");
|
||||
exit;
|
||||
}
|
||||
|
||||
$lastAction = 0;
|
||||
|
||||
echo("lessc: watching input files\n");
|
||||
|
||||
while (1) {
|
||||
clearstatcache();
|
||||
|
||||
$updated = false;
|
||||
foreach ($inputs as $input) {
|
||||
if ($input == '-') {
|
||||
if (count($inputs) == 1) {
|
||||
echo("lessc: during watching files is not possible to watch stdin\n");
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (filemtime($input) > $lastAction) {
|
||||
$updated = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($updated) {
|
||||
$lastAction = time();
|
||||
$parser = new Less_Parser($env);
|
||||
foreach ($inputs as $input) {
|
||||
try {
|
||||
$parser->parseFile($input, $rootpath);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
echo("lessc: " . $e->getMessage() . " \n");
|
||||
continue; // Invalid processing
|
||||
}
|
||||
}
|
||||
|
||||
file_put_contents($output, $parser->getCss());
|
||||
echo("lessc: output file recompiled\n");
|
||||
}
|
||||
|
||||
sleep(1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$parser = new Less_Parser($env);
|
||||
foreach ($inputs as $input) {
|
||||
if ($input == '-') {
|
||||
$content = file_get_contents('php://stdin');
|
||||
$parser->parse($content);
|
||||
}
|
||||
else {
|
||||
try {
|
||||
$parser->parseFile($input);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
if (!$silent) {
|
||||
echo("lessc: " . ((string)$e) . " \n");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($output) {
|
||||
file_put_contents($output, $parser->getCss());
|
||||
}
|
||||
else {
|
||||
echo $parser->getCss();
|
||||
}
|
||||
}
|
||||
47
bin/phpunit
Normal file
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
/*
|
||||
* This file is part of PHPUnit.
|
||||
*
|
||||
* (c) Sebastian Bergmann <sebastian@phpunit.de>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
if (version_compare('5.3.3', PHP_VERSION, '>')) {
|
||||
fwrite(
|
||||
STDERR,
|
||||
'This version of PHPUnit requires PHP 5.3.3; using the latest version of PHP is highly recommended.' . PHP_EOL
|
||||
);
|
||||
|
||||
die(1);
|
||||
}
|
||||
|
||||
if (!ini_get('date.timezone')) {
|
||||
ini_set('date.timezone', 'UTC');
|
||||
}
|
||||
|
||||
foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
|
||||
if (file_exists($file)) {
|
||||
define('PHPUNIT_COMPOSER_INSTALL', $file);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
unset($file);
|
||||
|
||||
if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
|
||||
fwrite(STDERR,
|
||||
'You need to set up the project dependencies using the following commands:' . PHP_EOL .
|
||||
'wget http://getcomposer.org/composer.phar' . PHP_EOL .
|
||||
'php composer.phar install' . PHP_EOL
|
||||
);
|
||||
|
||||
die(1);
|
||||
}
|
||||
|
||||
require PHPUNIT_COMPOSER_INSTALL;
|
||||
|
||||
PHPUnit_TextUI_Command::main();
|
||||
4
bin/propel
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
include('propel.php');
|
||||
101
composer.json
Normal file
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"name": "thelia/thelia",
|
||||
"description": "Thelia is an ecommerce CMS.",
|
||||
"license": "LGPL-3.0+",
|
||||
"homepage": "http://thelia.net/",
|
||||
"keywords": [
|
||||
"ecommerce",
|
||||
"cms",
|
||||
"cms ecommerce",
|
||||
"ecommerce cms"
|
||||
],
|
||||
"support": {
|
||||
"forum": "http://thelia.net/forum",
|
||||
"wiki": "http://doc.thelia.net"
|
||||
},
|
||||
"repositories": [
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "https://github.com/thelia/Propel2"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=5.4",
|
||||
"ircmaxell/password-compat": "1.0.*",
|
||||
"psr/log": "1.0",
|
||||
"symfony/config": "2.8.*",
|
||||
"symfony/console": "2.8.*",
|
||||
"symfony/dependency-injection": "2.8.*",
|
||||
"symfony/event-dispatcher": "2.8.*",
|
||||
"symfony/http-kernel": "2.8.*",
|
||||
"symfony/routing": "2.8.*",
|
||||
"symfony/filesystem": "2.8.*",
|
||||
"symfony/yaml": "2.8.*",
|
||||
"symfony/translation": "2.8.*",
|
||||
"symfony-cmf/routing": "1.3.*",
|
||||
"symfony/validator": "2.8.*",
|
||||
"symfony/options-resolver": "2.8.*",
|
||||
"symfony/security": "2.8.*",
|
||||
"symfony/expression-language": "2.8.*",
|
||||
"symfony/process": "2.8.*",
|
||||
"symfony/dom-crawler": "2.8.*",
|
||||
"symfony/property-access": "2.8.*",
|
||||
"symfony/serializer": "2.8.*",
|
||||
"ensepar/html2pdf": "1.0.1",
|
||||
"symfony/finder": "2.8.*",
|
||||
"symfony/browser-kit": "2.8.*",
|
||||
"symfony/http-foundation": "2.8.*",
|
||||
"symfony/form": "2.8.*",
|
||||
"symfony/class-loader": "2.8.*",
|
||||
"symfony/icu": "1.0",
|
||||
"stack/builder": "1.0.*",
|
||||
"thelia/currency-converter": "~1.0",
|
||||
"doctrine/cache": "1.5.*",
|
||||
"kriswallsmith/assetic": "1.3.*",
|
||||
"ptachoire/cssembed": "1.0.*",
|
||||
"simplepie/simplepie": "1.3.*",
|
||||
"imagine/imagine": "0.6.*",
|
||||
"swiftmailer/swiftmailer": "5.4.*",
|
||||
"oyejorge/less.php": "1.7.*",
|
||||
"michelf/php-markdown": "1.6.*",
|
||||
"smarty/smarty": "3.1.20",
|
||||
"ramsey/array_column": "~1.1",
|
||||
"propel/propel": "dev-thelia-2.3",
|
||||
"commerceguys/addressing": "0.8.*",
|
||||
"thelia/paypal-module": "~2.0.0",
|
||||
"thelia/take-customer-account-module": "~1.0",
|
||||
"thelia/order-creation-module": "~1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"fzaninotto/faker": "1.5.*",
|
||||
"thelia/hooktest-module": "~1.1",
|
||||
"thelia/hooktest-template": "~1.1",
|
||||
"phpunit/phpunit": "4.8.*"
|
||||
},
|
||||
"minimum-stability": "stable",
|
||||
"config": {
|
||||
"vendor-dir": "core/vendor",
|
||||
"bin-dir": "bin"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Thelia\\": "core/lib/Thelia"
|
||||
},
|
||||
"psr-0": {
|
||||
"": "local/modules/"
|
||||
},
|
||||
"files": [
|
||||
"core/bootstrap.php"
|
||||
]
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Thelia\\Tests\\" : "tests/phpunit/Thelia/Tests"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.3-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
4344
composer.lock
generated
Normal file
31
docker-compose.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
web:
|
||||
build: ./docker/php
|
||||
ports:
|
||||
- "8080:80"
|
||||
links:
|
||||
- mariaDB
|
||||
environment:
|
||||
SYMFONY_ENV: dev
|
||||
# see https://registry.hub.docker.com/u/jderusse/dns-gen/
|
||||
#- DOMAIN_NAME=thelia.docker
|
||||
command: /usr/sbin/apache2ctl -D FOREGROUND
|
||||
volumes:
|
||||
- .:/var/www/html
|
||||
|
||||
phpmyadmin:
|
||||
image: corbinu/docker-phpmyadmin
|
||||
ports:
|
||||
- "8081:80"
|
||||
environment:
|
||||
MYSQL_ROOT_UNSERNAME: root
|
||||
MYSQL_ROOT_PASSWORD: toor
|
||||
MYSQL_PORT_3306_TCP_ADDR: maria
|
||||
MYSQL_PORT_3306_TCP_PORT: 3306
|
||||
links:
|
||||
- mariaDB:maria
|
||||
|
||||
mariaDB:
|
||||
image: mariadb
|
||||
environment:
|
||||
MYSQL_DATABASE: thelia
|
||||
MYSQL_ROOT_PASSWORD: toor
|
||||
21
docker/php/Dockerfile
Normal file
@@ -0,0 +1,21 @@
|
||||
FROM php:5.6-apache
|
||||
COPY docker-php-pecl-install /usr/local/bin/
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libfreetype6-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libmcrypt-dev \
|
||||
libpng12-dev \
|
||||
libicu-dev \
|
||||
git \
|
||||
zip \
|
||||
libzip-dev \
|
||||
&& docker-php-ext-install intl pdo_mysql mcrypt mbstring zip \
|
||||
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
|
||||
&& docker-php-ext-install gd \
|
||||
&& docker-php-pecl-install xdebug-2.3.3
|
||||
|
||||
RUN a2enmod rewrite
|
||||
RUN usermod -u 1000 www-data
|
||||
COPY config/php.ini /usr/local/etc/php/
|
||||
COPY config/vhost/vhost.conf /etc/apache2/sites-enabled/
|
||||
14
docker/php/config/php.ini
Normal file
@@ -0,0 +1,14 @@
|
||||
post_max_size=20M
|
||||
html_errors=On
|
||||
display_errors=On
|
||||
date.timezone=Europe/Paris
|
||||
memory_limit=-1
|
||||
|
||||
[xdebug]
|
||||
xdebug.cli_color=1
|
||||
xdebug.var_display_max_children=-1
|
||||
xdebug.var_display_max_depth=-1
|
||||
xdebug.var_display_max_data=-1
|
||||
xdebug.remote_enable=1
|
||||
xdebug.remote_connect_back=1
|
||||
xdebug.remote_port=9000
|
||||
11
docker/php/config/vhost/vhost.conf
Normal file
@@ -0,0 +1,11 @@
|
||||
<VirtualHost *:80>
|
||||
DocumentRoot /var/www/html/web
|
||||
|
||||
SetEnv SYMFONY_ENV "dev"
|
||||
|
||||
<Directory /var/www/html/web>
|
||||
DirectoryIndex index.php
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
34
docker/php/docker-php-pecl-install
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
cd /usr/src/php/ext
|
||||
|
||||
usage() {
|
||||
echo "usage: $0 extension-version [extension-version] ...]"
|
||||
echo " ie: $0 oauth-1.2.3 uploadprogress-1.0.3.1"
|
||||
}
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
ext="$1"
|
||||
shift
|
||||
if [ -d "$ext" ]; then
|
||||
echo >&2 "error: $(pwd -P)/$ext exists already"
|
||||
echo >&2
|
||||
usage >&2
|
||||
exit 1
|
||||
fi
|
||||
exts+=( "$ext" )
|
||||
done
|
||||
|
||||
if [ "${#exts[@]}" -eq 0 ]; then
|
||||
usage >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for ext in "${exts[@]}"; do
|
||||
(
|
||||
mkdir -p $ext
|
||||
curl -sSL "http://pecl.php.net/get/$ext" | tar xvz -C "$ext" --strip-components=1
|
||||
docker-php-ext-install $ext
|
||||
)
|
||||
done
|
||||
11
index.html
Normal file
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Redirecting...</title>
|
||||
<meta http-equiv="Refresh" content="0; url=web">
|
||||
</head>
|
||||
<body>
|
||||
Redirecting...
|
||||
</body>
|
||||
</html>
|
||||
0
local/.gitkeep
Normal file
0
local/I18n/.gitkeep
Normal file
4
local/I18n/fr_FR.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
];
|
||||
0
local/backup/.gitkeep
Normal file
0
local/config/.gitkeep
Normal file
2
local/config/.htaccess
Normal file
@@ -0,0 +1,2 @@
|
||||
order deny,allow
|
||||
deny from all
|
||||
35
local/config/Readme.md
Normal file
@@ -0,0 +1,35 @@
|
||||
Readme
|
||||
======
|
||||
|
||||
## This is the repository of Thelia configuration. All the pull requests on this repo will be ignored.
|
||||
### If you want to create a project, please take a look at [thelia/thelia-project](https://github.com/thelia/thelia-project)
|
||||
### If you want to contribute to Thelia, please take a look at [thelia/thelia](https://github.com/thelia/thelia)
|
||||
|
||||
Thelia
|
||||
------
|
||||
[](https://travis-ci.org/thelia/thelia) [](https://packagist.org/packages/thelia/thelia) [](https://scrutinizer-ci.com/g/thelia/thelia/)
|
||||
|
||||
[Thelia](http://thelia.net/) is an open source tool for creating e-business websites and managing online content. This software is published under LGPL.
|
||||
|
||||
This is the new major version of Thelia.
|
||||
|
||||
You can download this version and have a try or take a look at the source code (or anything you wish, respecting LGPL). See http://thelia.net/ web site for more information.
|
||||
|
||||
A repository containing all thelia modules is available at this address : https://github.com/thelia-modules
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
* php 5.4
|
||||
* Required extensions :
|
||||
* PDO_Mysql
|
||||
* mcrypt
|
||||
* intl
|
||||
* gd
|
||||
* curl
|
||||
* safe_mode off
|
||||
* memory_limit at least 128M, preferably 256.
|
||||
* post_max_size 20M
|
||||
* upload_max_filesize 2M
|
||||
* apache 2
|
||||
* mysql
|
||||
31
local/config/build.properties.sample
Normal file
@@ -0,0 +1,31 @@
|
||||
# Database driver
|
||||
propel.database = mysql
|
||||
|
||||
# Project name
|
||||
propel.project = thelia
|
||||
|
||||
propel.schema.validate = false
|
||||
|
||||
propel.namespace.autoPackage = true
|
||||
|
||||
# The directory where Propel should output generated object model classes.
|
||||
propel.php.dir = ${propel.project.dir}/../../core/lib
|
||||
|
||||
# The database PDO connection settings at builtime.
|
||||
# This setting is required for the sql, reverse, and datasql tasks.
|
||||
# Note that some drivers (e.g. mysql, oracle) require that you specify the
|
||||
# username and password separately from the DSN, which is why they are
|
||||
# available as options.
|
||||
# Example PDO connection strings:
|
||||
# mysql:host=localhost;port=3307;dbname=testdb
|
||||
# sqlite:/opt/databases/mydb.sq3
|
||||
# sqlite::memory:
|
||||
# pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass
|
||||
# oci:dbname=//localhost:1521/mydb
|
||||
# SEE http://propelorm.org/reference/buildtime-configuration
|
||||
propel.database.url = {empty}|string
|
||||
propel.database.user = {empty}|string
|
||||
propel.database.password = {empty}|string
|
||||
|
||||
|
||||
propel.mysql.tableType = InnoDB
|
||||
10
local/config/composer.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "thelia/config",
|
||||
"type": "thelia-local",
|
||||
"require": {
|
||||
"thelia/installer": "~1.1"
|
||||
},
|
||||
"extra": {
|
||||
"installer-name": "config"
|
||||
}
|
||||
}
|
||||
6
local/config/database.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
database:
|
||||
connection:
|
||||
driver: mysql
|
||||
user: beaheadfwhsofian
|
||||
password: Cerbonnus34
|
||||
dsn: mysql:host=localhost;dbname=beaheadfwhsofian;port=3306
|
||||
6
local/config/database.yml.sample
Normal file
@@ -0,0 +1,6 @@
|
||||
database:
|
||||
connection:
|
||||
driver: %DRIVER%
|
||||
user: %USERNAME%
|
||||
password: %PASSWORD%
|
||||
dsn: %DSN%
|
||||
1943
local/config/schema.xml
Normal file
0
local/media/.gitkeep
Normal file
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 103 KiB |
BIN
local/media/documents/content/touchpadfond-7.jpg
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 118 KiB |
|
After Width: | Height: | Size: 72 KiB |
BIN
local/media/documents/product/2304.16reghm-27.pdf
Normal file
BIN
local/media/documents/product/en_23xx.16reghe_td-28.pdf
Normal file
BIN
local/media/documents/product/en_23xx.16reghe_td-29.pdf
Normal file
BIN
local/media/documents/product/en_23xx.16reghe_td-30.pdf
Normal file
BIN
local/media/documents/product/fr_1224ledude_ad-22.pdf
Normal file
BIN
local/media/images/brand/BRAND-1.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
local/media/images/brand/BRAND-2.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
local/media/images/brand/BRAND-3.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
local/media/images/brand/BRAND-4.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
local/media/images/brand/BRAND-5.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
local/media/images/brand/BRAND-6.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
local/media/images/brand/BRAND-7.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
local/media/images/carousel/photo9-1.bmp
Normal file
|
After Width: | Height: | Size: 383 KiB |
BIN
local/media/images/category/2019-03-22_08-31-31_539-80.jpg
Normal file
|
After Width: | Height: | Size: 4.1 MiB |
|
After Width: | Height: | Size: 1.8 MiB |
|
After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
BIN
local/media/images/category/assemblage_bouton-36.jpg
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
local/media/images/category/boutonappelsecours-62.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
BIN
local/media/images/category/enjoliveursimple-blanc-ls990ww-5.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 9.6 KiB |
BIN
local/media/images/category/enjoliveursimple-ivoire-ls990-18.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
local/media/images/category/enjoliveursimple-ivoire-ls990-4.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 15 KiB |